我正在开发一个应用程序,它不断地创建和删除 QWebView
对象。一段时间后,内存消耗会显著增加。
我建立了一个最小的示例来演示这个问题。
QList<QWebView *>views;
for(int i = 0;i<500;i++)
{
QWebView *view = new QWebView();
view->setHtml("Test");
views.append(view);
}
foreach(QWebView *view,views)
{
delete view;
}
views.clear();
如果我在循环中运行此函数,则程序分配的内存会均匀增长。如果我将
QWebView
替换为QPlainTextEdit
或其他小部件,则问题消失了。我还尝试过像clearMemoryCaches
,setObjectCacheCapacities
,删除页面等函数,但仍然无效。是否有正确的方法来释放QWebView中的资源?
我使用在Windows 7 x64上使用MinGW构建的Qt5.1。