Qt c ++如何在加载新的HTML页面后释放内存

时间:2015-12-08 10:32:00

标签: html c++ qt ram

我正在使用Html / Css中的前端在c ++中执行Qt应用程序。

每次我加载一个新的html页面(或者如果我重新加载一个),应用程序获得+ 5mo ram,并且在退出后不会获得免费。 (所以在10页后我得到+ 50mo ram)

我已经尝试将我的页面加载到矢量中,但加载仍然每次添加5mo。 我还认为在线程中加载页面,因此在使用后它们将被销毁。 这是保持下降公羊重量的可能解决方案吗?

因为我是一个新手,我可能做了一些愚蠢的事情:这是我加载新视图的代码:

Q_INVOKABLE bool                myBridge::newView(QString page)
{
    QString                         path = ("file:///" + QDir::currentPath() + "/");

    if (!(page.compare("page3.html")))
        _mediaPlayer->setTimer(10000);
    else
        _mediaPlayer->setTimer(60000);
    _view->close();
    _view = new WebView;
    _view->load(QUrl(path + page));
    _view->page()->mainFrame()->addToJavaScriptWindowObject("bridge", this);
    _view->showFullScreen();
    _mediaPlayer->_srnsaver->timerRestart();
    return (true);
}

你能在这段代码中看到错误吗?

1 个答案:

答案 0 :(得分:0)

每次调用此方法时,您都会创建一个新的WebView,并且您很可能永远不会删除上一个方法。当然,这会导致内存泄漏,因为没有任何东西被释放。调用close()不会删除该对象。