JavaScript の型を調べて、一部のデータ型の最大ストレージ サイズを調べようとしています。たとえば、ブラウザーがクラッシュするまで var サイズを増やすための再帰的アルゴをすばやく設定しました。これにより、既存のバージョンの chrome の文字列の場合、最終的に 128 MB (または 256 MB) 近くになります。
これに関する仕様を見つけることができなかったので、私は苦痛な方法でそれを行ってきましたが、絶え間ないブラウザーのクラッシュにより、これは苦痛な試行になります (この特定の問題では、何らかの理由で catch を試しても役に立たないようです)。
他のタイプ (配列、オブジェクト、関数、文字列、数値、ブール値など) の最大ストレージ サイズに関する情報も探しています。
EMCA-262 セクション 8.4 はこれについて曖昧です
String の長さは、その中の要素 (つまり、16 ビット値) の数です。空の String の長さはゼロであるため、要素は含まれません。
...おそらく、これはブラウザに実装されていると特定する必要があるものでしょうか?
ただし、ECMA は数字について教えてくれます。たとえば、
Number 型には、正確に 18437736874454810627 (つまり、2^64−2^53+3) の値があり、IEEE Standard for Binary Floating-Point Arithmetic で指定されている倍精度 64 ビット形式の IEEE 754 値を表します。 9007199254740990 (つまり、2^53−2) の IEEE 標準の個別の「非数」値は、ECMAScript では単一の特別な NaN 値として表されます。
しかし、オブジェクトについては何も表示されません。
ブラウザでの使用には何が期待できますか? 非常に大きなオブジェクトや文字列を管理するのに役立つコードベースはありますか?
1 つのスクリプトに割り当てることができるメモリの量は?