【问题标题】:QWebView memory deallocationQWebView 内存释放
【发布时间】:2013-12-05 21:55:44
【问题描述】:

我正在构建一个不断创建和删除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();

如果我在循环中运行这个函数,程序分配的内存会均匀增长。如果我用QPlainTextEdit 或其他小部件替换QWebView - 问题就消失了。我也试过clearMemoryCachessetObjectCacheCapacities、删​​除页面等功能,还是不行。

QWebView中是否有正确的资源释放方式?

我在 Windows 7 x64 上使用用 MinGW 构建的 Qt5.1。

【问题讨论】:

    标签: c++ qt webkit qtwebkit qwebview


    【解决方案1】:

    众所周知,Qt WebKit 存在许多内存泄漏,即使这些“内存泄漏”在某些情况下只是警告。您可以在此处阅读更多相关信息:Qt Bug 40373,还可以查看提到这些泄漏的其他错误报告。

    但是,Qt5.6 现在已经发布(显然在您提出问题时还没有)。现在还是用QWebEngineView比较好,这个好像没有内存泄露了。

    【讨论】:

    • 是的,很遗憾,QWebEngineView 与 Qt WebKit 相比非常有限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2015-04-22
    • 2011-01-17
    相关资源
    最近更新 更多