- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑:
QString urls[] = {
QString("http://www.sina.com")
};
int len = 1;
QWebSettings::setMaximumPagesInCache(0);
QEventLoop loop;
for (int i = 0; i < 200000; i++) {
QWebPage *page = new QWebPage;
page->settings()->setAttribute(
QWebSettings::AutoLoadImages,
false);
page->settings()->setAttribute(
QWebSettings::PrintElementBackgrounds,
false);
page->settings()->setAttribute(
QWebSettings::JavascriptEnabled,
false);
QString url = urls[i % len];
cout << "requesting " << url.toStdString() << endl;
connect(page, SIGNAL(loadFinished(bool)),
&loop, SLOT(quit()));
page->mainFrame()->load(url);
loop.exec();
disconnect(page, 0, 0, 0);
QWebSettings::clearMemoryCaches();
page->settings()->clearMemoryCaches();
connect(page, SIGNAL(destroyed()),
&loop, SLOT(quit()));
printLog(page->mainFrame()->toHtml());
page->deleteLater();
loop.exec();
}
执行此测试时,内存从大约 40 MB 增加到大约 700 MB。看起来我的代码中存在内存泄漏。但似乎所有对象都被删除了。这是为什么?
最佳答案
这在 2009 年就已经是一个已知问题。不幸的是,提出该问题的人并没有进一步实际提交错误报告。您可以在此处阅读相应的主题:
http://marc.info/?l=webkit-dev&m=124888472218111&w=2
如果 Qt 5.2 仍然存在错误报告,我建议继续创建错误报告。
请注意,在理想情况下,如所写,您不应该为该操作设置堆对象,尽管它有点偏离主题,因为它不能解决您的问题。然而,最好注意此处的堆栈对象可以完成您的工作,而无需手动删除麻烦。
关于c++ - 为什么一个qwebpage的测试内存一直在增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20878732/
我正在使用 Qt 中的单选项卡浏览器,但遇到了一个问题: 指向外部网站的网络链接设置为在新选项卡中打开(使用 taget='_blank')。但是,由于我的浏览器只有一个选项卡,因此这些链接根本处于非
我想知道如何使用 QWebPage 获取当前页面的 mime 类型。另外,如果可能的话,我希望能够使用 HEAD 请求来做到这一点,这样我就知道如果它不是正确的 mime 类型就不要下载整个页面。有什
我有这个代码: class TestThread : public QThread { public: void run() { QFile file("test.ht
我正在编写一个使用 QWebPage 抓取一些网页的应用程序。当响应是 Http 重定向(例如 302、303 等)时,我遇到了一些麻烦。 QWebPage 根本不遵循重定向。 为了解决这个问题,我已
QWebView 的文档(至少在 PyQt 中)说:“QWebView 类提供了一个用于查看和编辑 Web 文档的小部件”,而 QWebPage说:“QWebPage 类提供了一个对象来查看和编辑 W
我正在使用 Qt(带有 Qt 创建者的精美浏览器示例)使用此代码创建网页的屏幕截图(从 here 获取并转换): QImage *image = new QImage(view->page()->ma
我想重写 QWebPage 类的 userAgentForUrl 函数,但我做错了什么,用户代理仍然是默认的。 #! /usr/bin/env python2.7 from PyQt4.QtCore
我想要 QWebPage 来加载 html 页面(因为我在控制台应用程序中,我不能使用 QWebView)。 当我这样做时: bool webview::load(Arguments *args) {
我在主线程中创建了一个 QWebPage(您不能在其他任何地方创建它)。我想使用 Qt 4.6 中引入的 QWebElement API 来操作此页面,但在一个单独的线程中。这样该线程将获取对页面的引
我已经创建了一个 Qt GUI 应用程序,但我没有触及任何有关 GUI 的内容。我修改了mainwindow.cpp和工程文件。 主窗口.cpp: #include "mainwindow.h" #i
我需要能够对 QWebPage 中的焦点变化使用react。我使用了 microFocusChanged() 信号,它给了我几乎理想的行为,但无论如何我不知道如何知道选择了哪个元素。当页面上的任何可编
如何处理“在新窗口中打开链接”以打开新的 QWebPage而不是新窗口,将之前的 QWebPage 保存在堆栈中,并使用 QWebView::setPage() 显示新窗口? 我是 Qt(甚至 C++
我想在非 GUI Qt 应用程序中使用 QWebPage。我的意思是我根本不想与窗口服务器通信。不过,使用 QtGui 不是问题。 QWebPage 在内部创建一些 QWidget 实例。因此,使用
我目前正在将此信号与处理点击的函数连接起来。例如: QtCore.QObject.connect(self.ui.webView, QtCore.SIGNAL("linkClicked (const
我正在使用 Qt 5.0 + mingw 构建我的应用程序,我想使用“webkitwidgets”模块。我在 .pro 文件中添加 QT += webkitwidgets 然后在我的代码中我创建了一个
我是 Python 新手,我试图理解为什么会出现以下错误: Traceback (most recent call last): File "WebScraper.py", line 10, in
我使用 PyQt4 创建了一个 QWebView,然后使用其 setHtml() 方法加载它。 HTML 在大多数方面都能正确显示,但始终使用默认的无衬线字体。 当相同的 HTML 纯文本被外部浏览器
我正在使用 Qt 的 QWebPage 呈现一个页面,该页面使用 javascript 动态更新其内容 - 因此仅下载静态版本页面(例如 urllib2)的库将无法工作。 我的问题是,当我呈现第二个页
我用 QWebPage 下载网页及其所有资源。同时,我想掌握 Qt 在此过程中下载的原始数据。通过从 QNetworkReply 读取数据来完成此操作在 void QNetworkAccessMana
我想在完全加载时将页面内容保存到图像,但有时我得到的输出栅格未完全呈现。 import sys import signal import os from PyQt4.QtCore import * f
我是一名优秀的程序员,十分优秀!