奇怪,内存一直在增加!
我使用了TCppWebBrowser控件,然后不停的刷新一个页面,结果是内存在不停的增加。
部分代码:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
CppWebBrowser1->Refresh();
if(IsNewMsg==true)
{
TrayIcon1->Restore();
}
}
我想知道怎样才能释放CppWebBrowser1浪费的内存呢?
谢谢各位了!
问题点数:100、回复次数:9Top
1 楼laisf(痛并快乐着)回复于 2004-12-01 15:56:57 得分 10
UPTop
2 楼jishiping(JSP 季世平)回复于 2004-12-01 16:01:13 得分 20
你用IE浏览器试验一下就知道了。有时内存会拼命的增加,当然了,增加到一定程度就不增加了。Top
3 楼jishiping(JSP 季世平)回复于 2004-12-01 16:01:57 得分 20
就是说,这不是你代码的问题,而是浏览器控件本身的问题。Top
4 楼vicly(源头活水)回复于 2004-12-01 17:04:26 得分 0
那我怎么解决呀,这个样子不能给别人使用呀!
一个小小的程序能够占用几十兆的内存,太过分了呀!
有没有其他的解决办法呢?
我现在只是想检查一个url地址的页面内的数据,然后进行其他的动作。Top
5 楼Amour81(玛里奥)回复于 2004-12-01 17:34:49 得分 10
先最小化一下,再看看,内存应该会还原一点。
这种情形是很多程序无法避免的。Top
6 楼robbyzi(红客robby) (★世界真大★)回复于 2004-12-01 18:04:23 得分 10
一般的IE浏览器也都占了20M左右的内存啦。。
微软开发的浏览器在他自己的操作系统下(指windows)运行也都尚且如此,
更何况是我们写的浏览器程序……Top
7 楼wujian53(llbird)回复于 2004-12-02 00:14:17 得分 10
用Win Internet API库可以取得页面内的数据
HttpOpenRequest等API很简单, 自己查MSDNTop
8 楼218201(甘道夫遛狐狸)回复于 2004-12-02 07:25:35 得分 10
这可能和IE的内存管理策略有关。
有些设计为了实现更高效率的内存使用会运用内存池一类的方案,
申请了的内存就算目前没有使用往往也不会立即释放,
而是保持一定量的内存拥有权,以避免频繁向系统申请内存。
(因为打开多个网页是一种经常进行的操作,所以这种策略有存在的理由)Top
9 楼218201(甘道夫遛狐狸)回复于 2004-12-02 07:29:50 得分 10
这种策略往往会在某些条件下进行内存释放操作。
所以你若是只开一个页面大可不必担心占用的内存会无限增大,
到某个时候它就会停止增大或反而下降。Top




