76

Javascript にバイト値 (おそらく 100 万を超える) の大きな配列を格納します。通常の数値で通常の配列を使用すると、数値が IEEE double として格納されるため 8 MB かかりますが、バイトとして格納できる場合は 1 MB しかありません。

明らかな理由から、それほど多くのスペースを無駄にすることは避けたいと思います。バイトを double ではなくバイトとして格納する方法はありますか? Chrome で動作する限り、ブラウザの互換性は私にとって問題ではありません。それが違いを生む場合、これはHTML5にあります。

4

4 に答える 4

78

型付き配列を使用すると、次の型の配列を格納できます。

タイプ 値の範囲 サイズ(バイト)
Int8Array -128~127 1
Uint8Array 0~255 1
Uint8ClampedArray 0~255 1
Int16Array -32768 ~ 32767 2
Uint16Array 0~65535 2
Int32Array -2147483648 ~ 2147483647 4
Uint32Array 0 ~ 4294967295 4
Float32Array -3.4E38~3.4E38 4
Float64Array -1.8E308 ~ 1.8E308 8
BigInt64Array -2^63 から 2^63 - 1 8
BigUint64Array 0 ~ 2^64 - 1 8

スタック スニペットとJSFiddleのデモ

var array = new Uint8Array(100);
array[42] = 10;
console.log(array[42]);

于 2012-09-08T17:11:02.147 に答える
2

大きな固定サイズの文字列の配列にデータを格納できます。その文字列の配列内の特定の文字にアクセスし、その文字をバイトとして扱うのが効率的である必要があります。

質問をより具体的にするために、おそらくインターフェースとして表現された、サポートしたい操作を見るのは興味深いでしょう。

于 2012-09-08T16:03:35.987 に答える