Javascript操作在各浏览器下的性能比较
以下是对测试结果的引用,测试环境:
· Windows XP SP2, DELL Latitude D820, 2GB RAM, 1.66GHz Dual CPU
· IE 7.0.5730.11
· FireFox 2.0.0.11
· Safari 3.0.2 (522.13.1)
· Application: http://www.rockstarapps.com/samples/performance/
|
Internet Explorer 7 |
FireFox |
Safari |
|||
Description |
Time (ns) |
% of base |
Time (ns) |
% of base |
Time (ns) |
% of base |
Normal Empty function call (Base Operation) |
4.7 |
100% |
3.9 |
100% |
1.6 |
100% |
Basic Function Calls |
|
|
|
|
|
|
Function call using function.call(this) |
5.5 |
116% |
2.4 |
60% |
1.6 |
100% |
Normal Empty function using apply |
5.5 |
117% |
7.0 |
179% |
2.4 |
152% |
Normal Empty function using apply with 3 parameters |
7.0 |
149% |
7.1 |
181% |
2.4 |
152% |
Eval a function |
172.0 |
3660% |
546.0 |
14000% |
9.4 |
603% |
Eval an object |
94.0 |
2000% |
749.0 |
19205% |
22.7 |
1461% |
Basic Operations |
|
|
|
|
|
|
Access Properties through a getter |
13.3 |
282% |
6.3 |
160% |
5.5 |
352% |
Access Properties directly |
4.7 |
100% |
3.2 |
81% |
2.4 |
152% |
|
|
|
|
|
|
|
Simple string concatenation |
4.7 |
100% |
2.3 |
59% |
1.6 |
100% |
Simple string compare |
3.9 |
83% |
2.4 |
60% |
0.8 |
48% |
Change string to upper case |
11.7 |
249% |
3.9 |
100% |
4.7 |
303% |
Replace string reg expression |
12.5 |
266% |
7.1 |
181% |
9.4 |
603% |
String concat with integer |
7.1 |
150% |
4.7 |
119% |
2.4 |
152% |
String concat with float |
6.3 |
133% |
4.7 |
121% |
2.4 |
152% |
Index of Bob in string, not found, length = 71 |
6.3 |
133% |
6.3 |
160% |
2.4 |
152% |
Match of Bob in string, not found, length = 71 |
14.9 |
316% |
25.0 |
640% |
3.9 |
252% |
charAt(10) in string |
11.7 |
249% |
6.3 |
160% |
3.1 |
200% |
|
|
|
|
|
|
|
Create object constructor initialized |
11.7 |
249% |
23.4 |
600% |
3.2 |
203% |
create simple object |
8.6 |
182% |
23.4 |
600% |
2.4 |
152% |
|
|
0% |
|
|
|
|
Variable declaration |
4.0 |
84% |
2.3 |
59% |
0.8 |
48% |
Multiple variable declaration, multiple var |
3.9 |
83% |
2.4 |
60% |
2.4 |
152% |
Multiple variable declaration single var |
3.9 |
83% |
2.4 |
60% |
1.6 |
100% |
Variable declaration set to null |
3.9 |
83% |
2.4 |
60% |
1.6 |
100% |
|
|
0% |
|
|
|
|
Variable assignment++ |
4.7 |
100% |
5.5 |
140% |
1.6 |
103% |
Variable assignment + 1 |
5.5 |
116% |
7.1 |
181% |
1.6 |
100% |
|
|
|
|
|
|
|
Four levels of property access |
5.5 |
116% |
5.5 |
140% |
1.6 |
100% |
Three levels of property access |
4.7 |
100% |
4.7 |
121% |
2.4 |
152% |
Two levels of property access |
4.7 |
100% |
4.7 |
119% |
1.6 |
100% |
One level of property access |
3.9 |
83% |
4.7 |
121% |
1.6 |
103% |
|
|
0% |
|
|
|
|
Using the typeof function |
3.9 |
83% |
4.7 |
119% |
1.6 |
100% |
Array Operations |
|
|
|
|
|
|
Array access |
7.1 |
150% |
7.0 |
179% |
1.6 |
100% |
Array index value change |
3.9 |
83% |
4.7 |
121% |
1.6 |
103% |
Empty Array index value change |
8.6 |
183% |
8.6 |
221% |
6.3 |
403% |
Empty Array add three values |
10.2 |
216% |
11.7 |
300% |
3.1 |
200% |
Empty Array with set size |
11.0 |
233% |
11.0 |
281% |
3.2 |
203% |
Empty Array using constructor |
9.4 |
199% |
25.8 |
662% |
2.3 |
148% |
|
|
|
|
|
|
|
Push element onto an Array |
25.0 |
532% |
6.3 |
160% |
1.5 |
98% |
Pop element of an Array |
165.6 |
3523% |
6.3 |
160% |
249.7 |
16112% |
Push element onto an Array |
6.2 |
132% |
7.1 |
181% |
1.4 |
92% |
Shift elements off the front of an Array |
2030.0 |
43191% |
5620.0 |
144103% |
1250.0 |
80645% |
Join the array into a string |
125000 |
2659574% |
47000 |
1205128% |
16000 |
1032258% |
Push element onto an Array |
7.1 |
150% |
7.0 |
179% |
3.9 |
252% |
Sorting of an Array |
93.0 |
1979% |
45.3 |
1162% |
32.9 |
2119% |
|
|
|
|
|
|
|
Math.max(7.25,7.30) |
5.5 |
116% |
4.7 |
121% |
3.9 |
252% |
Math.min(7.25,7.30) |
5.5 |
117% |
4.7 |
121% |
3.2 |
203% |
HTML DOM Operations |
|
|
|
|
|
|
Change text using innerHTML |
469.0 |
9979% |
234.0 |
6000% |
109.0 |
7032% |
Create a text node on HTML Dom |
1093.0 |
23255% |
156.0 |
4000% |
110.0 |
7097% |
Change the class name of an element |
422.0 |
8979% |
47.0 |
1205% |
109.0 |
7032% |
|
|
|
|
|
|
|
getElementById |
86.8 |
1846% |
15.7 |
401% |
3.9 |
252% |
getElementsByTagName("div") |
153.1 |
3257% |
18.0 |
462% |
5.5 |
352% |
getElementsByTagName("spa") |
142.2 |
3024% |
18.8 |
481% |
5.5 |
355% |
getElementsByName |
93.8 |
1995% |
44.6 |
1142% |
4.7 |
303% |
|
|
|
|
|
|
|
placeDiv.getAttribute("id") |
29.7 |
632% |
46.8 |
1200% |
5.5 |
352% |
placeDiv.attributes["id"] |
31.3 |
665% |
225.0 |
5769% |
6.3 |
403% |
var atts = placeDiv.attributes; atts["id"].name |
11.7 |
249% |
18.8 |
482% |
4.7 |
303% |
var atts = placeDiv.attributes; atts.id.name |
12.5 |
266% |
18.8 |
482% |
3.9 |
252% |
Try/Catch |
|
|
|
|
|
|
Function call using function.call(this) |
7.1 |
150% |
4.0 |
101% |
2.4 |
152% |
Try catch |
7.1 |
150% |
6.3 |
160% |
5.5 |
352% |
Try catch with throw |
17.2 |
365% |
7.8 |
200% |
5.5 |
355% |
Try catch finally |
9.4 |
199% |
7.8 |
200% |
4.7 |
303% |
Try catch finally with throw |
16.5 |
350% |
11.0 |
281% |
6.3 |
403% |
If statement and Date object |
|
|
|
|
|
|
Create a date object |
12.5 |
266% |
10.2 |
260% |
3.1 |
200% |
Create a date object and call getDate() |
28.1 |
598% |
50.8 |
1303% |
10.2 |
658% |
|
|
|
|
|
|
|
The switch statement |
4.7 |
99% |
2.4 |
60% |
2.4 |
152% |
An if statement |
4.0 |
84% |
2.4 |
60% |
2.4 |
152% |
|
|
|
|
|
|
|
Simple if else |
4.1 |
86% |
2.2 |
56% |
1.9 |
121% |
turinary operator |
3.9 |
83% |
2.3 |
60% |
2.0 |
131% |
|
|
|
|
|
|
|
Compare of matching string == |
4.7 |
100% |
7.1 |
181% |
2.4 |
152% |
Compare of matching string === |
4.7 |
100% |
7.0 |
179% |
2.4 |
152% |
Compare of non-matching string |
4.7 |
100% |
3.9 |
100% |
2.4 |
152% |
|
|
|
|
|
|
|
Compare TEST_INT == 5 |
4.1 |
86% |
4.2 |
108% |
1.7 |
111% |
Compare 5 == 5 |
4.1 |
87% |
2.0 |
52% |
1.6 |
101% |
Looping Performance Statistics |
|
|
|
|
|
|
Loop through an array using in |
10.3 |
219% |
62.8 |
1610% |
7.8 |
503% |
Loop through an array using for (i++) |
6.3 |
133% |
10.6 |
273% |
3.4 |
222% |
Loop through an array using for (i < myArray.length) |
6.2 |
133% |
10.9 |
281% |
3.1 |
201% |
Loop through an array using for (i = 0; i < len; i++) |
5.0 |
106% |
4.7 |
120% |
4.1 |
262% |
Loop through an array using for (i = 0; i < len; i++) |
5.3 |
113% |
5.0 |
128% |
4.1 |
262% |
|
5.3 |
113% |
5.3 |
136% |
4.7 |
302% |
Loop through an array using while (i++ < len) |
5.0 |
106% |
5.0 |
128% |
4.4 |
283% |
posted on 2008-02-18 12:28 Easy Company 阅读(784) 评论(2) 编辑 收藏 举报