console.time('timer1'); var char = "abcdefghijklmnopqrstuvwxyz123456789" var id = ""; for(var i=0; i<10; i++){ id += char[Math.floor(Math.random()*35)]; } document.write(id); console.timeEnd('timer1');
0.24609375ms
timer1: 0.411865234375ms ※2回目
timer1: 0.324951171875ms ※3回目
min:1000000000 ~ max 9999999999 の10桁の数字の場合
var id = Math.floor(Math.random() * 9000000000)+ 1000000000; document.write(id);
timer1: 0.329833984375ms
timer1: 0.248779296875ms ※2回目
timer1: 0.24462890625ms ※3回目
感覚的に、1回の演算処理に較べて10回のforループを回す場合、レジストリの演算処理が10倍に増えるので、処理時間も約10倍位になるかと思いきや、計算してみるとforループでも処理時間はほとんど変わらない(2倍以下)ですね。multiplyとplusのCPUの処理はそんなに時間がかからない、ということなんでしょうか。よくわかりませんね。