V8 / Node.js增加最大允许字符串长度

时间:2017-06-14 01:28:44

标签: node.js v8

AFAIK V8有一个已知的hard limit on the length of allowed Strings。尝试解析> 500MB字符串会弹出错误:

Invalid String Length

使用V8标志来增加堆大小并没有任何区别

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

我知道我应该使用Streams。但是有没有办法增加最大允许String长度?

更新:来自@PaulIrish的回答表明他们将其提升至1GB - 但它仍然无法通过用户配置

2 个答案:

答案 0 :(得分:2)

2017年夏季,V8将字符串的最大大小从~256MB增加到~1GB 。具体而言,在64位平台上从2^28 - 162^30 - 25V8 ticket.

这一变化落在了:

  • V8:6.2.100
  • Chromium:62.0.3167.0
  • Node.js:9.0.0

答案 1 :(得分:1)

抱歉,不,没有办法增加允许的最大String长度。

它在源代码中是硬编码的,并且很多代码都隐含地依赖于它,因此虽然允许更大的字符串在人们的愿望清单上,但它将会是很多工作并赢得了#39; t发生在不久的将来。