V8/Node.js 增加允许的最大字符串长度
V8/Node.js increase max allowed String length
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 - 但它仍然不是用户可配置的
抱歉,不,没有办法增加允许的最大 String
长度。
它在源代码中是硬编码的,很多代码都隐含地依赖它,所以虽然已知允许更大的字符串在人们的愿望清单上,但这将是很多工作而且不会发生在不久的将来。
2017 年夏季,V8 将字符串的最大大小从~256MB 增加到~1GB。具体来说,在 64 位平台上从 2^28 - 16
到 2^30 - 25
。 V8 ticket.
此更改发生在:
- V8:6.2.100
- 铬:62.0.3167.0
- Node.js: 9.0.0
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 - 但它仍然不是用户可配置的
抱歉,不,没有办法增加允许的最大 String
长度。
它在源代码中是硬编码的,很多代码都隐含地依赖它,所以虽然已知允许更大的字符串在人们的愿望清单上,但这将是很多工作而且不会发生在不久的将来。
2017 年夏季,V8 将字符串的最大大小从~256MB 增加到~1GB。具体来说,在 64 位平台上从 2^28 - 16
到 2^30 - 25
。 V8 ticket.
此更改发生在:
- V8:6.2.100
- 铬:62.0.3167.0
- Node.js: 9.0.0