搜索引擎优化高级编程:php版(2001年IE6的引擎吃不消了,原因是什么?)

优采云 发布时间: 2021-10-27 16:23

  搜索引擎优化高级编程:php版(2001年IE6的引擎吃不消了,原因是什么?)

  编辑评论:

  高性能 JavaScript 所揭示的技术和策略可以帮助您消除开发过程中的性能瓶颈。您将学习如何提高各个方面的性能,包括代码加载、运行、DOM 交互、页面生命周期等。

  

  为什么需要优化

  1996 年,引擎只需要支持页面上的几十行代码,但今天,数千行代码的 Web 应用程序正在运行。在很多方面,如果不是因为它自己在语言管理和基础设施方面的滞后,它本可以在更大范围内取得成功。IE 6 就是一个明确的证明。在发布之初,它的稳定性和性能受到人们的称赞,但后来由于自身的错误和反应迟钝而被批评为令人讨厌的Web应用程序平台。

  事实上,IE 6 并没有放缓,只是寄予厚望。2001 年 IE 6 首次发布时出现的早期 Web 应用程序比 2005 年之后出现的那些更轻,代码也少得多。代码量增加带来的影响已经很明显了,IE 6的引擎因为其“静态垃圾采集机制”的翻译和注解而无法承受。引擎监视内存中固定数量的对象以确定何时进行垃圾回收。早期的 Web 应用程序开发人员很少遇到此限制。随着越来越多的代码生成越来越多的对象,复杂的 Web 应用程序开始频繁地遇到这个阈值。问题变得很清楚:开发人员和 Web 应用程序在不断发展,但引擎却没有。

  虽然其他的垃圾采集机制更完善,性能更好,但大部分还是使用解释器来执行代码。解释性代码本质上不如编译代码快,因为解释性代码必须经过将代码转换为计算机指令的过程。无论解释器如何优化和智能,它总会带来一些性能损失。

  编译器已经有了多种优化,让开发者可以随心所欲地编写代码,而不必担心是否**。编译器可以根据词法分析确定代码要达到什么目的,然后生成最快的可以完成任务的机器代码进行优化。解释器很少有这样的优化,这在很大程度上意味着代码在编写时执行。

  实际上,通常由其他语言的编译器处理的优化需要开发人员来完成。

  前言

  当它于 1996 年作为 Netscape Navigator 的一部分出现时,性能问题并不重要。那个时候,互联网还处于发展初期,各方面都很慢。从拨号上网到低端家用电脑,上网往往比什么都需要耐心。人们已经做好等待网页加载的心理准备。能够完成页面加载是一件值得庆贺的事情。

  *最初的目标是改善网页的用户体验。可以代替服务器处理页面表单验证等简单任务,节省了大量连接服务器的时间。想象一下,当你填写一个很长的表单,提交后等待 30 到 60 秒,并收到字段错误消息是什么感觉。显然,它为早期的互联网用户节省了大量时间。

  互联网的发展

  在接下来的 10 年中,计算机和互联网继续发展。首先,两者都变得更快了。高速微处理器、廉价的内存供应以及光纤连接的出现将互联网推向了一个新时代。随着高速网络的普及,网页变得更加丰富,承载了更多的信息和多媒体内容。Web 已经从简单的相关文档发展到各种设计和界面。一切都变了,除了一件事,那就是。

  用于节省服务器消耗的技术越来越流行,但代码也从几十行增加到几十万行。IE 4 和动态 HTML 翻译(一种无需重新加载即可更改页面显示的技术)的引入使网页中的代码量只会增加。

  最近的主要更新是引入了文档对象模型 (DOM),这是一种被 IE 5、Netscape 6 和 Opera 一致接受的动态 HTML 界面。紧接着,它被标准化并推出了ECMA-262

  下一代引擎

  2008年,发动机迎来了一次重大的性能升级。谷歌发布了一款全新的 Chrome。Chrome是优化引擎的第一个版本,引擎开发代码为V8。V8内置了JIT编译引擎,将代码转换成机器码执行,所以感觉执行速度超快。

  紧随其后的其他引擎也对其进行了优化。Safari 4 发布了一个名为 SquirrelFish Extreme(或 Nitro)的 JIT 引擎,Firefox 3.5 的 TraceMonkey 引擎针对频繁执行的代码路径优化了翻译。

  这些全新的引擎带来了编译器级别的优化,这是它应该做的。也许有一天,开发人员根本不需要关心代码性能优化。然而,这一天还没有到来。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线