热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于WebBrowser释放内存的问题

蒋老师,您好!我看了很多您回复或编写的关于WebBrowser编程的帖子,都没有找到解决WebBrowser释放内存的办法。微软公布了解决WebBrowser内存泄漏的补丁,但只是在2003和XPS
蒋老师,您好!我看了很多您回复或编写的关于WebBrowser编程的帖子,都没有找到解决WebBrowser释放内存的办法。微软公布了解决WebBrowser内存泄漏的补丁,但只是在2003和XP SP2上使用。我目前的系统是Win2000,使用WebBrowser访问网页时,出现内存不断增大无法释放的问题。请问如何解决?谢谢!

19 个解决方案

#1


微软也没有办法。你可以把浏览器隔离到另一个进程里面去,进程结束内存就释放了

#2


我试过动态生成WebBrowser也是不行,已经释放并delete了,可内存还是释放不了,直到关闭程序才行。现在的解决办法是编了两个程序,将含有WebBrowser的部分放在一个程序中,用另外一个程序在需要时去调用它,并判断如果内存增到一定数值,就自动关闭,等待下次再调用运行。实在非常痛苦和无奈!非常感谢您的回复。

#3


我也是遇到这个问题啊,内存就是释放不了。
后来我是把这个放到了另外一个程序中去,需要的时候去调用

#4


WebBrowser控件要申请的内存实在太多,很难说是哪一句代码引起的内存泄漏。如果在正常释放WebBrowser控件接口后仍然回收不了内存,那就是真的内存泄漏,恐怕谁也没有办法。

#5


就这个问题,我还有点疑问:目前基于IE内核的浏览器,尤其多页类的,象:遨游、世界之窗等。他们是否没用到WebBrowser?因为我发现这些产品并没有这个问题。如果没用到WebBrowser,那他们怎样去调用IE内核呢?可能是我水平不够,好像只能通过WebBrowser才能获得最初的接口,然后再去调用其他接口对页面信息进行处理。

#6


所有基于IE内核的浏览器都是用WebBrowser做的,这点可以放心,目前还没见到有谁能直接使用trident引擎来开发一个浏览器的

#7


好的,非常感谢各位的回复!这个帖子先留一段时间,希望能有更多对IE编程有心得的高手谈谈这方面的体会。我尤其想知道象遨游、世界之窗这类浏览器是怎么解决这个问题,讲一下大致的思路也行。谢谢各位!

#8


1、如果你使用的是CHtmlView类,那么CHtmlView有一个指针引用上的泄露。
请在CHtmlView类中查找调用GetHtmlDocument()方法的地方。

2、程序在空闲时,调用CoFreeUnusedLibraries及时清理未使用的dll

#9


是内存池吧,听说就是这样设计的,不知道是否是真的

#10


在没有用任何类的情况下,就会出现泄漏的问题。大家可以做个简单的试验:在程序中放置一个WebBrowser,然后不断打开同一个网址,并观察内存和虚拟内存的占用情况。一段时间后,会发现内存和虚拟内存会不断增大。直到将程序关闭,所占用的内存和虚拟内存才会完全释放。网上有些资料讲述如何释放WebBrowser占用的内存,但实际虚拟内存并没有减少。其实是没有真正的释放,当程序运行一段时间后系统会越来越慢,直到系统警告虚拟内存太低。目前我所知道的办法就是关闭该程序!

#11


Google chorme测试下载啦,很好用

#12


关注这个问题 好像现在浏览器内存控制opera做得最好

#13


学习 路过。。。。

#14


我正遇到这样的问题,查了很多都没有解决的办法;
如果调用另一个程序的话效果又不好,郁闷。。。
希望有相关人士给出答案,感激涕零。。。

#15


http://www.cnblogs.com/manors/archive/2009/05/25/1488909.html

#16


引用楼主 songzm 的回复:
蒋老师,您好!我看了很多您回复或编写的关于WebBrowser编程的帖子,都没有找到解决WebBrowser释放内存的办法。微软公布了解决WebBrowser内存泄漏的补丁,但只是在2003和XP SP2上使用。我目前的系统是Win2000,使用WebBrowser访问网页时,出现内存不断增大无法释放的问题。请问如何解决?谢谢!


http://www.cnblogs.com/manors/archive/2009/05/25/1488909.html
http://www.cnblogs.com/manors/archive/2009/05/25/1488909.htmlhttp://www.cnblogs.com/manors/archive/2009/05/25/1488917.html
http://www.cnblogs.com/manors/archive/2009/05/25/1488917.html

我据此方法解决问题。

#17


也遇到这样困惑的问题

#18


还要回复啊!~!~!~

#19


1234556898989

#20


  • WebBrowser 在多线程中,无法释放内存
  • 今天思考了一下, 也许 webbrowser 为何不释放内存了.

推荐阅读
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
author-avatar
激越工作室
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有