用WebBrowser创建一个多页浏览的程序,开了多个页面以后,内存占用很多,如何处理?(200分)

  • 主题发起人 主题发起人 kkkchenA
  • 开始时间 开始时间
K

kkkchenA

Unregistered / Unconfirmed
GUEST, unregistred user!
在 EmbeddedWb作者主页上能够下载到的最新版本是1.16 2001年出来的,支持到Delphi6,请问谁有最新的版本呢?
用WebBrowser(或者EmbeddedWb)创建一个多页浏览的程序,开了多个页面以后,内存占用很多,如何处理?
 
哎,浪费了,torry上找到了,还有朋友找到比这个更加新的么?
http://www.torry.net/vcl/internet/browsers/embedwb117_XP.zip
 
EmbeddedWB_D2005_Update11
http://www.tomore.com/2/37825.html
 
已经是成熟稳定版本了
还要新版本做什么?
 
嗯,下载了。
IEAddress的问题很多,有一个FCanvas创建了没有释放,地址的自动完成功能一塌糊涂。
我用的是d7,不知道是不是跟版本有没有关系。
 
真是麻烦啊,动态创建的TWebBrowser对象占用的内存在释放掉该对象的时候不会自动释放。有什么方法可以释放掉么?
 
跟版本没有关系的吧
 
用EmbeddedWb吧
 
我就是在使用EmbeddedWb啊,但是还是没有太多的改善。
把新浪的主页开了10个以后,内存占用还是达到了80多m,释放掉EmbeddedWb对象以后,内存的占用也没有减少多少。
 
将应用程序11M内存占用,降至500K
发表日期:2004-11-27 作者:muse2008[转贴] 出处:CSDN

最近解决了一个问题-减少内存占用。不过是有条件的,只能在WinXp,Win2K中应用此方法,不显示主窗体一直运行的程序最佳。以前程序占用11M内存,我用动态创建窗口的方法只能减少不到100K,应用此方法后内存占用只有496K。把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。
{
**********
* Clear Memory
* From Muse2008
**********
}
procedure ClearMemory;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
Application.ProcessMessages;
end;
end;
==========
----------转自DELPHI程序员助手

用得好,请大家回帖!!
 
该方法是会把虚拟内存扩大。而且,运行的时候程序的线程数也没有减少,会不会出问题?
 
当然程序最小化,然后还原以后,程序的内存占用变小了。
在最小化的过程中,系统做了什么工作呢?
难道也是做了 sbzldlb 介绍的方法的工作么?
 
共同学习,我现在用的是 sbzldlb 的方法,效果不好
 
兄弟,我用EmbeddedWb,在页面上的回车竟然被吃掉了。EmbeddedWb处理了么?我看了一下EmbeddedWb的代码,编译标志VER120UPUP代表什么版本的Delphi呢?
 
吃掉的意思是按了回车没反应? 试一下 embeddedwb.load;
 
to payer
恩,真是不错,load一下,然后就可以了,不过释放的是时候又有麻烦,有一个指针的存取错误。我是在运行期建立多个embeddedwb实例的,你是如何处理的呢?
 
干脆,不用动态创建就可以了。
 
晕,可以回车找回来了,释放的时候产生一个指针读写错误。
 
当存在两个以上的embeddedwb实例的时候,释放时就产生一个读写指针的错误
 
真是奇怪的现象,竟然不能主动释放,让其父类释放就可以。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部