JavaScript では型付けが緩い言語なので、コードを書くと次のようになります。
var foo;
このステップの直後に、メモリのブロックがいくつ割り当てられますか。私はそれに何かを割り当てます。また、入力するときにも割り当てます
var foo = 10;
と
var foo = "this is random"
どちらの場合も、何バイトのメモリが割り当てられますか?
JavaScript では型付けが緩い言語なので、コードを書くと次のようになります。
var foo;
このステップの直後に、メモリのブロックがいくつ割り当てられますか。私はそれに何かを割り当てます。また、入力するときにも割り当てます
var foo = 10;
と
var foo = "this is random"
どちらの場合も、何バイトのメモリが割り当てられますか?
実装に依存する詳細についてはわかりませんが、ここに私が推測するものがあります。
単純に行うだけでvar foo;
は、新しいオブジェクトは作成されません。ただし、宣言された変数のディクショナリに foo を追加する必要がある場合があります。その場合、foo
インターンされていないと仮定して、文字列と可能なメタデータ用のスペースが割り当てられます。
実行すると、通常はメモリを占有する文字列変数または整数変数がそれぞれ作成されますvar foo = 10;
。var foo = "this is random"
ただし、小さな int と定数文字列はほぼ確実にインターンされます。さらに、JIT は数値参照を単純なマシン整数に最適化する可能性があります。この場合、余分なメモリはまったく必要ありません。
とにかく、特に JIT が関係している場合、さまざまな実装を持つ高水準言語でのパフォーマンスについて具体的に言うのは困難です。