我有一个主干1页的应用程序,需要运行几个小时沿不同的路线移动。我已经在python上创建了一个简单的脚本,它可以运行我的浏览器和全屏显示。在
import sys
from gi.repository import Gtk, Gdk, WebKit
class BrowserWindow(Gtk.Window):
def __init__(self, *args, **kwargs):
super(BrowserWindow, self).__init__(*args, **kwargs)
self.connect("destroy", Gtk.main_quit)
self.webview = WebKit.WebView()
self.webview.connect("load-finished", self._load_finish)
self.webview.connect("navigation-requested", self._navigation_requested)
settings = self.webview.get_settings()
print settings.get_property("enable-page-cache")
settings.set_property("enable-page-cache", False)
self.webview.set_settings(settings)
self.webview.load_uri("http://www.google.com/")
self.add(self.webview)
self.show_all()
def _load_finish(self, view, frame):
print "Loading completed"
print view
def _navigation_requested(self, view, frame, request):
print "Mavigation change requested"
self.webview.get_back_forward_list().clear()
return False
def main():
Gtk.init(sys.argv)
window = BrowserWindow()
window.show()
window.fullscreen()
Gtk.main()
if __name__ == "__main__":
main()
这里的问题是每次它改变路径,它都会增加一定量的内存。那些有更多图像的内存增加得更快。而不是使用内存中的任何东西,它倾向于使用更多的内存而不是利用它。在
我试图寻找一个清晰的函数,但没有得到任何帮助。我也尝试了QTWebkit,它有明确的功能,但它也没有帮助。在
真正的问题是:你确定内存的使用确实是个问题吗?现代浏览器(和webviews)可能有非常复杂的缓存行为:“倾向于使用更多的内存,但没有利用它”很可能是对这种情况的一种过度简化的描述。在
也就是说,WebkitGTK确实让您对缓存行为有一些控制:看看
set_cache_model()
和相关函数(它们是webkit2gtk中WebKitWebContext的一部分,以及WebkitGTK中的全局函数)。在相关问题 更多 >
编程相关推荐