2

JavaScript はメモリに格納される変数のサイズを最適化しますか? たとえば、ブール値を持つ変数は、整数値を持つ変数よりも占有するスペースが少ないでしょうか?

基本的に、次の配列になります。

var array = new Array(8192);
for (var i = 0; i < array.length; i++)
  array[i] = true;

コンピューターのメモリ内で、次の値よりも小さい必要があります。

var array = new Array(8192);
far (var i = 0; i < array.length; i++)
  array[i] = 9;
4

2 に答える 2

1

簡単な答え: はい。

ブール値は一般に (ユーザー エージェントと実装によって異なります) 4 バイトを使用し、整数は 8 バイトを使用します。

この他の StackOverflow の質問をチェックして、他の人が JS のメモリ フットプリントをどのように測定したかを確認してください: JavaScript オブジェクト サイズ

編集: ECMAScript 仕様のセクション 8.5 には、次のように記載されています。

Number 型には正確に 18437736874454810627 の値があり、2 進浮動小数点演算の IEEE 標準で指定されている倍精度 64 ビット形式の IEEE 754 値を表します。

...したがって、実装に関係なく、すべての数値は8バイトにする必要があります。

于 2012-07-10T20:36:19.307 に答える
0

jsには、64ビット浮動小数点数という1つの数値型しかありません。文字列の各文字は16ビットです(src:douglas crockfordの、javascriptの良い部分)。したがって、boolの処理は、おそらくインタプリタの実装に固有です。私の記憶が正しければ、V8エンジンは確かに「ブール値」オブジェクトを「cbool」として処理します。

于 2012-07-10T22:18:24.260 に答える