you21979の日記

実験ネタとか。仮想化とかnodejsで嵌った所とかおもしろかったところとかいろいろ

node.jsの構文による速度比較

なんかブラウザの常識と違う気がする

v0.8.4で測定

 

オブジェクト生成 

var x = null;
for(var i=0;i<100000000;++i){
    x = new Object();
}
real    0m2.619s
user    0m2.573s
sys     0m0.005s
var x = null;
for(var i=0;i<100000000;++i){
    x = {};
}
real    0m0.419s
user    0m0.411s
sys     0m0.004s

配列生成  

var x = null;
for(var i=0;i<100000000;++i){
    x = new Array();
}
real    0m1.035s
user    0m1.025s
sys     0m0.004s
var x = null;
for(var i=0;i<100000000;++i){
    x = [ ];
}
real    0m0.523s
user    0m0.514s
sys     0m0.006s

オブジェクトプロパティ存在チェック  

var x = { hoge : 0 };
for(var i=0;i<100000000;++i){
    if('hoge' in x){}
}
real    0m5.233s
user    0m5.206s
sys     0m0.006s
var x = { hoge : 0 };
for(var i=0;i<100000000;++i){
    if(x.hasOwnProperty('hoge')){}
}
real    0m4.032s
user    0m4.011s
sys     0m0.005s

配列拡張

var x = [ ];
for(var i=0;i<10000000;++i){
    x.push(i);
}
real    0m0.445s
user    0m0.361s
sys     0m0.082s
var x = [ ];
for(var i=0;i<10000000;++i){
    x[x.length] = i;
}
real    0m0.680s
user    0m0.560s
sys     0m0.116s