制作轻量级网络浏览器——Gecko vs Webkit vs???;Qt4对Qt5对?
因为我对主流浏览器(Firefox、Chrome、Opera)都不满意,而且我也尝试过一些不太受欢迎的浏览器(近十几种),所以我决定自己动手做一个我最喜欢的网络浏览器 主要目标是尽可能少地使用RAM——我的笔记本电脑安装了1GB,不可扩展。但它必须保留我所需要的所有基本功能——完整的JavaScript支持、对外部Flash插件的支持(如Adobe的插件),以及使用EasyList过滤器的广告拦截器 但我在制作本地GUI应用程序方面没有太多经验,在花了相当长的时间在谷歌上搜索之后,我几乎没有发现任何关于哪些框架最适合这项工作的信息。所以我想问:制作轻量级网络浏览器——Gecko vs Webkit vs???;Qt4对Qt5对?,qt,memory,browser,Qt,Memory,Browser,因为我对主流浏览器(Firefox、Chrome、Opera)都不满意,而且我也尝试过一些不太受欢迎的浏览器(近十几种),所以我决定自己动手做一个我最喜欢的网络浏览器 主要目标是尽可能少地使用RAM——我的笔记本电脑安装了1GB,不可扩展。但它必须保留我所需要的所有基本功能——完整的JavaScript支持、对外部Flash插件的支持(如Adobe的插件),以及使用EasyList过滤器的广告拦截器 但我在制作本地GUI应用程序方面没有太多经验,在花了相当长的时间在谷歌上搜索之后,我几乎没有发现
Gecko通常被认为比WebKit消耗更少的内存,但这在很大程度上取决于浏览器的实现方式。然而,使用Qt创建(至少是一个简单的)web浏览器真的很容易(几乎难以置信),Qt也有一个JavaScript引擎。Qt4比Qt5更稳定,占用的内存更少(几个月前就是这种情况,我不知道情况是否发生了变化)。这是你的选择。Firefox是长期以来最好的选择。支持webm、ogv、mp4。显示和显示许多html标记的方式比webkit要好得多。这是我的观点。我不确定您是否愿意重新思考如何做这件事,但您可能会发现Netsurf,尤其是项目页面,对这个项目很有用。我认为这将要求您远离标准框架,这很可能需要更多的工作,但我相信这将允许您大幅减少您的足迹 至于GUI?“libNSFB的总体思想是提供一个对内存线性部分的通用抽象,它对应于显示设备上的可见像素元素数组。”听起来很有趣
还有,+1表示“还有,你怎么了?[…]”。把它贴在那个人身上。特别是Firefox已经开始变得不那么直观了,而插件只是掩盖了问题。我已经在我的旧电脑上做了一些快速测试,它有1.5GHz的CPU和384MB的RAM以及Lubuntu 12.04 我已经安装了Chromium 33(Blink)、Firefox 28(Gecko)、Epiphany 3.4.1(WebKitGTK)和QupZilla 1.6.5(QtWebKit4)。首先,我打开了一个标签——谷歌,然后我打开了5个标签——CNN、雅虎、YouTube、谷歌、Facebook,我用任务管理器测量了浏览器使用的内存。然后我运行HTML5测试和V8基准测试。结果:
1 tab 5 tabs HTML5 V8
Epiphany 68MB 155MB 351 988
QupZilla 86MB 204MB 304 881
Firefox 101MB 188MB 424 353
Chromium 151MB 281MB 495 963
结论:最有效的内存是Epiphany/WebKitGTK,最膨胀的内存是Chromium/Blink
除了(Qt)WebKit(GTK)、Gecko和Blink之外,你还试过吗?我没有问任何JS引擎。我特别要求的是低内存JS引擎。因为如果有必要的话,我可以用胶带将任何引擎连接到我的浏览器上——问题是,我应该使用哪一个。我不知道哪一个选项是最好的,但他们说至少V8非常快,需要的内存很少。如果创建自己的浏览器是一种爱好,或者你只是想学习一些东西,那就完全可以了。我的观点是,创建一个新的工作浏览器是一个大项目。你是否考虑过为Firefox或Chrome制作自己的插件,以改变你讨厌的功能?这将是一个小得多的项目,您将获得一些关于这些浏览器如何工作的经验。当然,使用插件你无法改变浏览器使用的内存量,但是如果你从现成的库中构建浏览器,你也不能很好地控制它们的内存使用。你的答案在很多地方都是错误的。首先,这与我的问题完全无关——我们谈论的不是浏览器,而是浏览器引擎。其次,这与我的问题完全无关——我们谈论的不是很酷的功能,而是内存消耗。第三,你的语法不仅让我目瞪口呆,而且让你的整个帖子几乎无法理解。带有HTML标记的那部分是关于什么的?第四,以“这是我的观点”结尾的帖子足以让我当场驳斥它缺乏可信度。毫无意义的数据。渲染引擎正在使用报告的内存的未知部分。