AFAIK V8有一个已知的hard limit on the length of allowed String
s。尝试解析> 500MB字符串会弹出错误:
Invalid String Length
使用V8标志来增加堆大小并没有任何区别
$ node --max_old_space_size=5000 process-large-string.js
我知道我应该使用Streams。但是有没有办法增加最大允许String
长度?
更新:来自@PaulIrish的回答表明他们将其提升至1GB - 但它仍然无法通过用户配置
答案 0 :(得分:2)
2017年夏季,V8将字符串的最大大小从~256MB增加到~1GB 。具体而言,在64位平台上从2^28 - 16
到2^30 - 25
。 V8 ticket.
这一变化落在了:
答案 1 :(得分:1)
抱歉,不,没有办法增加允许的最大String
长度。
它在源代码中是硬编码的,并且很多代码都隐含地依赖于它,因此虽然允许更大的字符串在人们的愿望清单上,但它将会是很多工作并赢得了#39; t发生在不久的将来。