我读到一个文件太大而无法放入缓冲区时出现致命错误.
FATAL ERROR: v8::Object::SetIndexedPropertiesToExternalArrayData() length exceeds max acceptable value
Run Code Online (Sandbox Code Playgroud)
要么,
RangeError:在Function.Buffer.allocUnsafe(buffer.js:209:3)中,"size"参数不得大于2147483647
如果我尝试分配1GB缓冲区,我会得到同样的致命错误,
var oneGigInBytes = 1073741824;
var my1GBuffer = new Buffer(oneGigInBytes); //Crash
Run Code Online (Sandbox Code Playgroud)
Node.js Buffer类实例的最大大小是多少?
Vya*_*rov 26
最大长度为1GB - 1byte.代码中的相关常量是kSmiMaxValue
:
https://github.com/v8/v8/blob/c8bf5c35e431d4029e084024501863a4cf907882/src/objects.h#L4647-L4648
Eva*_*oll 13
这现在被记录为Node 的buffer
api 的一部分,最大大小为buffer.constants.MAX_LENGTH
.
buffer.constants.MAX_LENGTH
<integer>
单个 Buffer 实例允许的最大大小。
- 在 32 位架构上,此值为
(2^30)-1
(~1GB)。- 在 64 位架构上,此值为
(2^31)-1
(~2GB)。此值也可用作
buffer.kMaxLength
.
所以你可以通过做来弄清楚它有多大
> (require('buffer').constants.MAX_LENGTH + 1) / 2**30
2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21333 次 |
最近记录: |