QWebFrames
我正在尝试在显示之前以一系列隐藏的方式预加载一些网页。但是,我发现setContent
a 的方法QWebFrame
会导致 GUI 变得无响应。
我尝试将实际的网络活动放在一个单独的线程中并将其提供给QWebFrame
as a QByteArray
,但这无济于事,让我相信是页面的绘制导致了 ~1.5 秒,非常明显减速。
QByteArray data = pReply->readAll(); //get the content from a QNetworkReply
this->page->mainFrame()->setContent(data); //this is the line that causes the problem
我完全被难住了,我不知道该尝试什么,因为我不能将整个 web 框架放在它自己的线程中。
有没有人遇到过这个并有任何建议?
更新 我分析了应用程序并确认 setContent 是问题的根源。
更新 2 我使用英特尔 VTune 分析了应用程序。我发现 QWebKit 确实占用了超过 100% 的 CPU 时间。QWebSettings::handle 用法突然出现在我身上,因为它似乎使用了最多的资源,我可以确认它正在占用主线程。