如何在Node.js中获得最大缓冲区大小

时间:2015-09-10 22:48:49

标签: node.js v8

在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中获得缓冲区(和/或可分配内存)的最大大小?

1 个答案:

答案 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