i++;
}
var end = (new Date()).getTime();
WScript.Echo(end-start);
*/
function internCast(i){
return "" + i;
}
function StringCast(i){
return String(i)
}
function newStringCast(i){
return new String(i)
}
function toStringCast(i){
return i.toString();
}
function ParseInt(){
return parseInt(j);
}
function MathFloor(){
return Math.floor(j);
}
function Floor(){
return floor(j);
}
var pressure = 50000;
var a = "";
var floor = Math.floor;
j = 123.123;
print("-------------nString Conversion Test");
print("The empty:", benchmark(empty));
print("intern:", benchmark(internCast));
print("String:");
benchmark(StringCast);
print("new String:");
benchmark(newStringCast);
print("toString:");
benchmark(toStringCast);
print("-------------nFloat to Int Conversion Test");
print("parseInt");
benchmark(ParseInt);
print("Math.floor");
benchmark(MathFloor);
print("floor")
benchmark(Floor);
function newObject(){
return new Object();
}
function internObject(){
return {};
}
print("------------nliteral Test");
print("runtime new object", benchmark(newObject));
print("literal object", benchmark(internObject));
附录2
代码1:
for(var i=0;i<100;i++){
arr[i]=0;
}
代码2:
var i = 0;
while(i < 100){
arr[i++]=0;
}
代码3:
var i = 0;
while(i < 100){
arr[i]=0;
i++;
}
在firefox下测试这两段代码,结果是代码2优于代码1和3,而代码1一般优于代码3,有时会被代码3超过;而在IE 6.0下,测试压力较大的时候(如测试10000次以上)代码2和3则有时候优于代码1,有时候就会远远落后代码1,而在测试压力较小(如5000次),则代码2>代码3>代码1。
代码4:
var i = 0;
var a;
while(i < 100){
a = 0;
i++;
}
代码5:
var a;
for(var i=0;i<100;i++){
a = 0;
}
上面两段代码在Firefox和IE下测试结果都是性能接近的。
代码6:
var a;
var i=0;
while(i<100){
a=i;
i++;
}
代码7:
var a;
var i=0;
while(i<100){
a=i++;
}
代码8:
var a;
for(var i=0;i<100;i++){
a = i;
}
代码9:
var a;
for(var i=0;i<100;){
a = i++;
}
这四段代码在Firefox下6和8的性能接近,7和9的性能接近,而6, 8 < 7, 9;
最后我们来看一下空循环
代码10:
for(var i=0;i<100;i++){ }
代码11:
var i;
while(i<100){ i++; }










