【发布时间】:2013-11-22 02:40:59
【问题描述】:
这是下载同一页面 10 次的代码:
app = QApplication([])
event = threading.Event()
def load(url):
def _load_finished(ok):
event.set()
web_view = QWebView()
web_view.loadFinished.connect(_load_finished)
event.clear()
web_view.setUrl(QUrl(url));
while not event.wait(.05): app.processEvents()
web_view.loadFinished.disconnect(_load_finished)
return web_view.page().mainFrame().documentElement()
QWebSettings.setMaximumPagesInCache(0)
QWebSettings.setObjectCacheCapacities(0, 0, 0)
if __name__ == '__main__':
for i in range(10):
load('http://www.huffingtonpost.com/')
QWebSettings.clearMemoryCaches()
QWebSettings.clearIconDatabase()
print(i)
app.exec_()
这是第 7 次下载后 Process Explorer 的快照:
第 10 次下载内存达到 270MB。 这是正常的吗?我该如何解决?
奇怪的是,根据地址,消耗可能会波动,但会保持在一定的阈值以下(这里是 90MB):
【问题讨论】:
标签: pyqt qwebview qwebkit pyqt5