随着 Google 推出 WebKit 内核的 Chrome 浏览器,一些技术狂热分子开始盘算 Mozilla 的 Gecko 内核是否即将走到尽头。然而尽管 WebKit 日渐流行,那些熟悉 WebKit 与 Gecko 的差异,并对 Gecko 大加赞赏的人还是认为,Mozilla 在未来版本的 Firefox 中使用 WebKit 内核的可能性尚无从谈起。

  Webkit 的优势

  Webkit 是一个开源的HTML 渲染引擎,由苹果公司基于 KDE 的 KHTML 项目开发而成。我们从 Chrome 的评测中已经看Webkit 是一个非常轻量的渲染引擎,因其紧凑干净的代码基础,出色的标准支持,以及很小的内存占用而备受赞誉。这些品质使得 Webkit 成为众多浏览器的热选内核。

  Webkit 主要用于苹果的 Safari 浏览器与 iPhone,但一些重要的厂商如 Adobe,Nokia, Trolltech 也使用这个核心。Webkit 的用户中还包括一些不太知名的浏览器,包括 iCab, Omniweb, Shiira, 以及 Epiphany。在一些二线操作系统,如 Haiku, Syllable, 甚至 Amiga,Webkit 也大行其道。越来越多的开发者,使用 Webkit 开发富 Internte 应用(rich Internet applications)。Google 在对众多内核进行评估之后,为 Android 移动浏览器,以及 Chrome 桌面浏览器选择了 WebKit。

  开发者对 Webkit 公认的评价是:这是一个非常出色的渲染引擎,可以用于众多场合,它的吸引力让很多开发者开始怀疑 Mozilla 的 Gecko 内核是否还有市场。

  苹果为什么抵制 Gecko

Gecko 源自 Netscape,并早于 KHTML,Gecko 因庞大与复杂的代码基础而频遭诟病。Gecko 非常强大,但代价高昂,复杂,高内存占用。因此,在很多场合 Gecko 的众多功能反而成了负担。

  Gecko 内核过于复杂的原因是 Gecko 意图提供除了 HTML 渲染之外的更多功能。Mozilla 早期的野心很大,Mozilla 最早的应用套件包括浏览器,邮件和新闻组程序,Web 设计工具,IRC 聊天工具。除了渲染 HTML,Gecko 还要提供一种应用广泛的,基于 XML 的用户界面生成引擎,XUL。XUL 被用在所有这些程序中。XUL 现在仍用在 Firefox 中,用来生成用户界面,因此造就了 Firefox 最有价值的重多扩展应用。

  Gecko 过于复杂的另外一个原因是 XPCOM,一个强大的组件系统。虽然 XPCOM 为 Gecko 带来很多激动人心的功能,让这个渲染引擎实现组件化,然而,这个功能被一些开发者滥用,当 Ars Technica2004年采访 Mozilla 开发者 Scott Collins的时候,Scott Collins 说,对 XPCOM 的滥用是 Mozilla 犯的几个主要错误之一。

  鉴于 XUL 和 XPCOM 所带来的复杂性,苹果自然要考虑为 Safari 选择一种更轻量的内核。苹果要设计一款可以和 Mac 操作系统紧密结合的浏览器,他们还预见到,这个引擎应该支持移动设备,他们因此认识到 KHTML 比 Gecko 更合适。

  2003年,当苹果决定在 Safari 中使用 KHTML 的时候,Mozilla 的 Mike Shaver 曾在博客中承认 Gecko 的缺点。他同时预言,苹果会成为他们推广 Web 标准的联盟。他写道,

  “小而精练曾是我们的苦苦追寻的目标,Gecko 的庞大与臃肿在各种评测中拉了我们的分数,如果我不得不写一个新浏览器,我会考虑 Mozilla 之外的选择。我希望 Mozilla 向 Safari/KHTML 学习,因为它们用 1/10 的代码实现了非常棒的功能。”

  Gecko 洗心革面带来 Firefox 3 的火爆

  2003年以来,发生了很多变化。Gecko 代码基础已经发展了很久,Gecko 依然复杂,然而它的很多历史遗留的缺陷正被一一攻破,Gecko 为 Firefox 3 带来众多革新,为整个 Web 浏览体验带来非常显著的改善。

  Gecko 1.9 使用跨平台的 Cairo 渲染框架,对 SVG 的巨大改进简化了代码并引入一些非常 Cool 的功能,如全页缩放,同时,重构的 reflow 算法,让 Gecko 通过 Acid 2 测试成为可能。Mozilla 还非常显著地降低了对内存的占用,甚至超越了 Safari 和 Opera。

  对 XPCOM 的使用被大大减少,XPCOM 对资源的占用通过一个新的循环回收器得到减低。这个工作仍在继续,Mozilla 将在 Firefox 4 中进一步减低 XPCOM 的负担。Gecko 的其它缺陷也在新的开发中被一一正视,比如,Firefox 3.1 的 Alpha 版中就已经加入对 CSS 3 的支持,另外一些性能的改进会让 Gecko 更具竞争性。Mozilla 的 TraceMonkey 引擎将可能包含在 Firefox 3.1 中,这将显著地提高 JavaScript 性能。

  从技术的角度,Gecko 现在非常稳固,丝毫不比 Webkit 差。一些证据显示,Gecko 正在进军移动领域,这在不久前还是不可能的事。Mozilla 拥有资源,开发经验以及社区支持,这将引导 Gecko 进入任何 Webkit 所能进入的地盘。

浏览器内核Gecko与WebKit哪个性能更强大相关推荐

  1. 个人电脑 公司电脑 代理_你们想要打造的树莓派电脑,刚发布了官方版:性能更强大,只卖70美元...

    点击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 机器之心报道 编辑:泽南.张倩 网友们说:「这是 2020 年发生 ...

  2. 开发一款浏览器内核需要学习哪些方面的知识?

    开发一款浏览器内核需要学习哪些方面的知识? 最近参加毕业设计,题目选的是<基于Linux平台的网页浏览器设计与实现>. 想认真做一下,所以不准备直接用现成的开源浏览器内核(比如WebKit ...

  3. 移动浏览器内核及连接数

    移动浏览器内核 Android和iOS上使用的浏览器内核都是WebKit内核,UC 的U3内核和QQ的X5内核都是在开源的WebKit基础上修改的,或者说是WebKit内核的分支版本.浏览器使用的We ...

  4. 常见的浏览器内核有哪些?

    Trident-IE浏览器内核 Gecko-火狐浏览器内核Mozilla Blink(Webkit的分支)-谷歌浏览器内核 Presto,现为Blink-Opera浏览器内核

  5. 公司用云桌面还是台式计算机好,相比于性能更强的台式机为什么很多企业更喜欢用云桌面...

    台式机一直以来都是以超高的配置和能连接更大的显示器而被很多人喜欢,一直以来它也是很多企业选择办公电脑时的首要选择的,然而随着云桌面的出现,向来以超高配置和性价比的台式机仿佛不在这么受欢迎的了,相比于性 ...

  6. 华为nova10和荣耀70哪个值得买 哪个性能更好

    华为nova10在昨日正式发布了,在配置上可以说是十分强大,在配置上也十分不错的,但如果和才出不久的荣耀70相比的话,华为nova10和荣耀70哪个值得买? 哪个性能更好?下面就一起来看看吧. 华为n ...

  7. A12X性能更值得期待,苹果摆脱Intel又近了一步

    外媒AnandTech表示基于SPECint2006基准测试,A12处理器的性能较A11好24%,但在提高功耗的情况下性能可能提升幅度达到40%,这并不算惊人,或许即将搭载于新iPadPro上的A12 ...

  8. 目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto

    浏览器最重要或者说核心的部分是"Rendering Engine",可大概译为"渲染引擎",不过我们一般习惯将之称为"浏览器内核".负责对网 ...

  9. 浏览器内核Trident/Gecko/WebKit/Presto

    "浏览器内核"主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML.JavaScript)并渲染.展示网页.因此,所谓的浏览器内核通常也就是指浏览器所采 ...

最新文章

  1. 可操作性强!Python实现一个电影订票系统!
  2. LINUX-NAT(二)
  3. delphi 窗体透明详解TransparentColorValue,窗体透明控件不透明
  4. NYOJ 108 士兵杀敌(一)
  5. QT中图表类QChart之各种缩放/平移
  6. Tomcat 服务自动启动
  7. hibernate mysql 性能_MyBatis和Hibernate相比,优势在哪里?
  8. 华硕电脑键盘灯不亮怎么办
  9. 【FME】常见转换器功能介绍
  10. javascript 生成 UUID GUID 浏览器环境 NodeJS环境 纯JavaScript函数
  11. 怎么区分PV、IV、UV以及网站统计名词解释(pv、曝光、点击)
  12. 编程也需要有大局观 新鲜出炉的大局观 了解一下
  13. thinkphp5实现评论回复功能
  14. 手游直播到底难在哪里?
  15. 51Nod 2069 牛奶 c/c++题解
  16. 全基因组关联分析(GWAS)
  17. Docker搭建Skywalking环境
  18. 构造函数初始化列表初始化成员变量的顺序
  19. solaris系统查看文件节点数命令
  20. 第一个vue案例 创建vue实例化对象

热门文章

  1. 系统分区减小_智能打铃校园广播系统通用方案
  2. 图扑入选 2021 中国企业抗洪捐赠 500 强榜单
  3. 动态加载烘培贴图与Terrain转mesh
  4. 获取QQ昵称+头像API
  5. Java基础学习资料
  6. 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年 问题。 写一个函数days,实现上述计算。由主函数将年、月、日传递给days函数,计算后将 日子数传回主函数输出
  7. 【如何访问GitHub——国内GitHub打不开了怎么办】
  8. nginx的location和rewrite
  9. Java框架问题整理
  10. cropper(图片裁剪插件)