我的简单qtwebkit应用程序的虚拟内存使用量将永远增加。我的qtwebkit应用程序简单地循环webView->setUrl(QUrl(QStringLiteral("about:blank")),如下,
QWebView* webView = new QWebView(centralWidget);
webView->setObjectName(QStringLiteral("webView"));
webView->setGeometry(QRect(0, 0, width, height));
while (true)
{
webView->setUrl(QUrl(QStringLiteral("about:blank")));
msleep(1); // sleep 1 millisecond
}我认为在这种情况下,内存的使用应该是稳定的,但是结果并非如此。你怎么了?多次使用setUrl()需要某种类型的清除?
发布于 2015-11-13 07:42:56
不幸的是,这对于QtWebKit来说是正常的,而且永远不会被修复,因为现在建议使用QtWebEngine。
关于内存泄漏:https://bugreports.qt.io/browse/QTBUG-36530
您可以使用许多技术来清除内存,例如:
QWebSettings::globalSettings()->clearMemoryCaches();见此处:http://forum.qt.io/topic/10832/memory-size-increases-per-page-load
但通常情况下,这并不是很有帮助,而且只要使用QtWebKit,就会有内存泄漏。如果您正在开发新项目,并且您的平台支持QtWebEngine,那么您应该考虑使用它。
https://stackoverflow.com/questions/33685057
复制相似问题