关于QWebView内存

SilenceSu 2012-10-29 09:08:57

QWebView* webView=new QWebView(this); //创建QWebView
webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
webView->load(QUrl(newsUrl));

之后、不管你是delete还是怎么地、指针可以删除、

但是总有那么14M左右的内存怎么都释放不了


求思路 、 求思路 、求思路


元方、你怎么看?
...全文
417 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒山-居士 2013-10-11
  • 打赏
  • 举报
回复
哈哈 如果我程序一直不退出来,还是不是内存一直会增大?无法释放,到最后是不是系统崩溃
SilenceSu 2012-10-31
  • 打赏
  • 举报
回复
thanks!!! 应该就是只有等自动回收、或者程序退出!
[Quote=引用 13 楼 的回复:]

我是其中的两个人之一。
我个人认为,QWebview加载了内容,就是已经放入内存了。就算你delete了,那部分内存还是被分配给你了。这时只能等系统回收了。而且这种情况,有点类似于以前的非Qt程序也会有这样的情况。你试试最小化后再看看内存占用数?
[/Quote]
SilenceSu 2012-10-30
  • 打赏
  • 举报
回复
在来2个人 结贴!
小笨象 2012-10-30
  • 打赏
  • 举报
回复
我是其中的两个人之一。
我个人认为,QWebview加载了内容,就是已经放入内存了。就算你delete了,那部分内存还是被分配给你了。这时只能等系统回收了。而且这种情况,有点类似于以前的非Qt程序也会有这样的情况。你试试最小化后再看看内存占用数?
tt2com 2012-10-30
  • 打赏
  • 举报
回复
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复
我是送分 都木有人?
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复


for(int i=0;i<1000;i++){
QWebView* w=new QWebView();
w->settings()->setObjectCacheCapacities(0,0,0);
w->load(QUrl("http://www.sina.com.cn"));
w->show();
delete w;
}



这样运行之后、内存还是一样的!
lwtlwt0810 2012-10-29
  • 打赏
  • 举报
回复
反复的加载同一个网站的时候好像内存变化不大,应该还是和具体的网站有关系的
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复




#include <QtGui/QApplication>
#include <QWebView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QWebView* w=new QWebView();
w->settings()->setObjectCacheCapacities(0,0,0);
w->load(QUrl("http://www.sina.com.cn"));
w->show();
delete w;
return a.exec();
}





木有QWebView运行内存是5M、加上QWebView内存是17M
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复
但你把缓存什么都禁用的话、还是一样的效果!
[Quote=引用 6 楼 的回复:]

本来我也觉得是不是因为加载了动态库,但是我试验了百度和新浪两个网站后我发现内存变化是不一样的,我就想是不是网站所包含的元素不一样导致的
[/Quote]
lwtlwt0810 2012-10-29
  • 打赏
  • 举报
回复
本来我也觉得是不是因为加载了动态库,但是我试验了百度和新浪两个网站后我发现内存变化是不一样的,我就想是不是网站所包含的元素不一样导致的
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复
没有、也没有人来讨论 准备结贴了

stackoverflow 是这样回答的
when you call delete the memory isn't freed in that moment it takes a while and if other objects are not created it might not geed freed until the end of the application. QWebView is a complex class 20 M in 2012 are no longer a concern.The memory will be freed if you do this properly
  • 打赏
  • 举报
回复
找到原因了么?
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复
随便来个人回复 然后结贴了....
SilenceSu 2012-10-29
  • 打赏
  • 举报
回复
真的没有人吗?

16,805

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧