【问题标题】:Making lightweight web browser - Gecko vs Webkit vs ???; Qt4 vs Qt5 vs?制作轻量级网络浏览器——Gecko vs Webkit vs ???; Qt4 与 Qt5 与?
【发布时间】:2013-06-06 19:04:14
【问题描述】:

由于我对任何主流浏览器(Firefox、Chrome、Opera)以及我尝试过的不那么流行的浏览器(近十几个)都不完全满意,因此我决定 DIY 并制作一个网络我想要最好的浏览器。

主要目标是让它使用尽可能少的 RAM - 我的笔记本电脑安装了 1GB 并且不可扩展。但它必须保留我需要的所有基本功能 - 完整的 JavaScript 支持、对外部 Flash 插件(如 Adob​​e 的插件)的支持,以及可能使用 EasyList 过滤器的广告拦截器。

但我在制作原生 GUI 应用程序方面没有太多经验,而且在谷歌上搜索了相当长一段时间后,我几乎没有发现关于哪些框架最能胜任这项工作的信息。所以我问:

  1. 以下哪一个:Gecko 或 Webkit,在一般情况下使用较少的内存?如果它们大致相同,哪个更易于使用和“混乱”(例如,删除冗余功能)?是否有任何其他浏览器引擎我可以在此任务中尝试?
  2. 哪一个使用较少的内存来显示基本控件:Qt4 还是 Qt5? QtWebkit 怎么样 - 它在 Qt5 中变胖了,还是正好相反?如果我决定使用 Qt4,我能否将 Webkit 引擎(从 QtWebkit)更新到新版本?将 vanilla Webkit 或 Gecko 集成到 Qt 应用程序有多难?
  3. 您是否知道任何其他本机 GUI 库可以比 Qt 做得更好或更好,尤其是在内存消耗方面? wx小部件? GTK+?我至少需要同时支持 Windows 和 Linux。
  4. 哪个开源 JS 引擎使用的内存最少?它不一定需要运行得最快。

【问题讨论】:

  • 如果创建自己的浏览器是一种爱好,或者只是想学习一些东西,那完全没问题。我的观点是,创建一个新的工作浏览器是一个大型项目。您是否考虑过为 Firefox 或 Chrome 制作自己的插件来改变您讨厌的功能?那将是一个小得多的项目,您将获得一些浏览器如何工作的经验。当然,使用插件您无法更改浏览器使用的内存量,但如果您使用现成的库构建浏览器,您也无法很好地控制它们的内存使用情况。

标签: qt memory browser


【解决方案1】:

Gecko 通常被认为比 WebKit 消耗更少的内存,但这在很大程度上取决于浏览器的实现方式。但是,使用 Qt 创建(至少是一个简单的)Web 浏览器确实(几乎令人难以置信)容易,Qt 也具有 JavaScript 引擎。 Qt 4 比 Qt 5 更稳定并且消耗的内存更少(几个月前就是这种情况,我不知道事情是否发生了变化)。选择权在你。

【讨论】:

  • 我没有询问任何 JS 引擎。我专门要求低内存 JS 引擎。因为如果必须的话,我可以将任何引擎用胶带粘到我的浏览器上——问题是,我应该使用哪一个。
  • 我不知道哪个选项最好,但他们说至少 V8 相当快并且需要的内存很少。
【解决方案2】:

我已经在装有 Lubuntu 12.04 的 1.5GHz CPU 和 384MB RAM 的旧 PC 上进行了一些快速测试。

我已经安装了 Chromium 33 (Blink)、Firefox 28 (Gecko)、Epiphany 3.4.1 (WebKitGTK) 和 QupZilla 1.6.5 (QtWebKit4)。首先,我打开了一个标签 - Google,然后我打开了 5 个标签 - CNN、Yahoo、YouTube、Google、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,你试过Awesomium吗?

【讨论】:

  • 无意义的数据。渲染引擎正在使用报告的内存的未知部分。
【解决方案3】:

我不确定您是否愿意重新考虑如何执行此操作,但您可能会发现 Netsurf,http://www.netsurf-browser.org/about/,尤其是项目页面,http://www.netsurf-browser.org/projects/ 对这个项目很有用。我认为这将要求您远离标准框架,而且很可能需要做更多的工作,但我相信这将使您大大减少您的足迹。

至于图形用户界面? “[libNSFB] 的总体思想是为内存的线性部分提供通用抽象,该线性部分对应于显示设备上的像素元素的可见阵列。”听起来很有趣。

另外,+1 表示“还有,你怎么了?[...]”。贴在男人身上。尤其是 Firefox 已经开始变得不那么直观了,而且插件只会在腐烂的东西上作画。

【讨论】:

    【解决方案4】:

    Firefox 长期以来一直是最好的。支持webm、ogv、mp4。显示方式和许多 html 标签至少比 webkit 好得多。这是我的看法。

    【讨论】:

    • 你的答案在很多地方都是错误的。首先,这与我的问题完全无关——我们不是在谈论浏览器,而是在谈论浏览器引擎。其次,这与我的问题完全无关——我们不是在谈论酷炫的功能,而是在谈论内存消耗。第三,你的语法不仅让我流血,而且让你的整个帖子几乎无法理解。 HTML 标签的那一部分是关于什么的?第四,以“这是我的观点”结尾的帖子足以让我当场驳回它,因为它缺乏可信度。
    猜你喜欢
    • 2011-08-18
    • 2011-03-27
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多