在Node.js 0.12.x中,缓冲区的最大大小受可分配内存的限制,可以通过以下方式获得:
require('smalloc').kMaxLength;
旧版V8中kMaxLength
的实际值为hardcoded,等于0x3fffffff
。
问题是io.js中没有smalloc
模块> = 3.x(包括node.js 4.x)。有人提到Buffer
实现已在V8 4.4.x中重写。
所以,我的问题是:有没有办法在io.js> = 3.x中获得缓冲区(和/或可分配内存)的最大大小?
答案 0 :(得分:2)
此文件“计算”(https://github.com/v8/v8-git-mirror/blob/4.4.63/src/objects.h)也具有外部阵列的固定常量。
4642 // Maximal acceptable length for an external array.
4643 static const int kMaxLength = 0x3fffffff;
修改强>
看起来你可以使用 要求( '缓冲')kMaxLength;
这是3.0中的变化,仍然是4.0
b625ab4242 - 缓冲区:修复kMaxLength的使用情况(Trevor Norris)#2003