JavaScriptにも型付の配列が登場したらしいので使ってみる。((o(^-^)o))ワクワク
■通常の配列と型付の配列の比較
以下のコードで通常の配列と型付の配列の速度を比較した。ちなみにChromeのCanary Buildを使用してテストしている。
var ary1 = new Array(1000000); var start = new Date(); for(var i = 0, n = ary1.length; i < n; i++){ ary1[i] = i % 256; } console.log(new Date() - start);// 110 var ary2 = new Uint8Array(1000000); var start = new Date(); for(var i = 0, n = ary2.length; i < n; i++){ ary2[i] = i % 256; } console.log(new Date() - start);// 24
超速です!
The UInt8Array type represents an array of 8-bit unsigned integers.
Uint8Arrayというのは8ビットの符合なし要素の配列らしい!
■符号ありの要素の配列
ということは符号ありの要素の配列もあるはずだ。
var ary3 = new Int8Array(1000000); var start = new Date(); for(var i = 0, n = ary3.length; i < n; i++){ ary3[i] = -i % 256; } console.log(new Date() - start);// 26
符号ありの方が同じ処理をしても僅かながらに遅い気がした。必要に応じて選択すべし。
ちなみにやってはいけないが符合なしの配列にわざと負の値を入れるとおかしな事になる。
var ary2 = new Uint8Array(1000000); var start = new Date(); for(var i = 0, n = ary2.length; i < n; i++){ ary2[i] = -i % 256; } console.log(ary2); //0, 255, 254, ...
y = 256 – (x % 256)って感じになる。