2017-06-14 19 views
0

AFAIK V8にはhard limit on the length of allowed Stringsがあります。 500メガバイトの文字列がエラーをポップアップ表示されます>解析しよう:ヒープサイズを増やすことV8フラグを使用してV8/Node.jsは最大許容文字列の長さを延長します

Invalid String Length 

はどんな違いがありません

$ node --max_old_space_size=5000 process-large-string.js 

は私が代わりにStreamsを使用する必要があることを知っています。しかし、とにかく許可されている最大値を増やす方法はありますか?String


アップデート:以下@PaulIrishから回答は、彼らが1ギガバイトにそれを持ち上げ示して - しかし、それはまだ、ユーザが設定

答えて

1

申し訳ありません、いや、最大許容String長さを増加させる方法はありません。

ソースコードはハードコードされており、多くのコードが暗黙的に依存しているため、大きな文字列を許可することは人の願い事であることが知られていますが、近い将来に。

+0

は、あなたが知って起こるのかこの制限の理由? V8ではなぜ 'String'にその最大長がありますか? –

+0

これまでのところ、2010年までの日付は512MBでしたが、512MBは全体的なヒープ限界でしたが、ヒープよりも大きな文字列を指定することはできませんでした;-)(512 MB =長さ2^28のUTF-16文字列のメモリ消費) – jmrk

+1

あなたがV8チームにいると仮定するのは安全です。ありがとうございます:) –

2

夏2017年、V8は最大文字サイズを〜256MBから〜1GBに拡大しました。です。具体的には、64ビットプラットフォームの2^28 - 16から2^30 - 25までです。

  • V8:V8 ticket.

    この変更はに上陸6.2.100

  • クロム:62.0.3167.0
  • のNode.js:9.0.0
関連する問題