两个 JavaScript 的测试
第一个是 JavaScript 在不同浏览器下的速度测试,原文对 Firefox 3.0.7a, Firefox 2.0.0.6, IE7, IE6, Safari 3.0.3, Opera 9.23, Opera 9.50a 分别进行了测试。原文中附带了测试,而我的测试结果是:
| Array | Date | Error | Math | RegEx | String | DOM | AJAX | Total | |
|---|---|---|---|---|---|---|---|---|---|
| Firefox 2.0.0.11 | 297 | 78 | 94 | 141 | 328 | 78 | 125 | 1078 | 2219 |
| Firefox 3.0b3pre (Gecko/2007121405) | 31 | 15 | 151 | 65 | 266 | 187 | 133 | 773 | 1621 |
| Internet Explorer 7.0 (With Add-ons) | 63 | 31 | 94 | 125 | 344 | 93 | 172 | 375 | 1297 |
| Safari 3.0.4 | 78 | 16 | 62 | 63 | 203 | 31 | 203 | 110 | 766 |
| Opera 9.24 | 156 | 47 | 63 | 78 | 156 | 125 | 63 | 93 | 781 |
与原文的结果相比,Firefox 3 还在继续改进,但总体结果还是不及 IE7(这个结果让人惊讶)。而 Safari 和 Opera 在 JavaScript 运算上的优越简直让人惊讶,这让我觉得在接下来的时间里,单靠众多的 Add-ons 的来支撑的 Firefox 还会不会是众多用户除了 IE 以外的首个选择。要说 Firefox 存在的优势,就是 DOM 方面的运算极快,但还是不及 Opera。AJAX 方面更是让人失望,很明显地也不如 IE7,无论是现时主流的 Firefox2 还是处于 beta 状态的 Firefox3。若非开发,日常使用大可考虑使用 Opera 或者 Safari —— 这是我的结论。
原文叫做 Javascript Speed Test 2007,但貌似测试的时间距离现在也有一段日子了,有兴趣的同学也可以自己做一做测试。
而另一个是关于在 JavaScript 中,使用 Closure 及使用 Object Properties 间性能的比较。当然这个比较是有点无意义的感觉,原文 中也只对 Firefox2 及 IE7 做了比较。这里补充上我的一些测试结果:
| Closure | Writing | Reading | External Reading | External Writting | |
|---|---|---|---|---|---|
| Firefox 2.0.0.11 | Closures | 3921 | 63 | 1516 | 1593 |
| Properties | 4891 | 93 | 1219 | 1250 | |
| Firefox 3.0b3pre (Gecko/2007121405) | Closures | 3725 | 72 | 1745 | 1761 |
| Properties | 6908 | 123 | 1355 | 1407 | |
| Internet Explorer 7.0 | Closures | 4828 | 109 | 6359 | 3485 |
| Properties | 5844 | 188 | 2031 | 2015 | |
| Safari 3.0.4 | Closures | 953 | 172 | 797 | 953 |
| Properties | 1921 | 172 | 484 | 531 | |
| Opera 9.24 | Closures | 1203 | 94 | 766 | 859 |
| Properties | 1172 | 109 | 343 | 516 |
这个测试除了再一次证明 Safari 和 Opera 在 JavaScript 运算速度上的优越,而在 Closure 和 Object Properties 使用上的选择,和原文一般的观点:如果有在外部读取和写入需要,使用 Object Properties,在仅是内部使用的情况下更多地考虑选择 Closure。
References
PS: 你认为你的 CSS 能力在哪个阶段呢?这里 有一个简单的评定条件,我给自己评的是 4.6 (虽然没有这个数字……),各位认为这个数字会不会偏高了呢?哪位同学有意打击我,现在机会来了……;P
