您需要控制最大内存大小标志(所有大小以MB为单位)。
对于“低内存设备”,建议的数量为:
node --max-executable-size=96 --max-old-space-size=128 --max-semi-space-size=1 app.js
适用于32位和/或Android和
node --max-executable-size=192 --max-old-space-size=256 --max-semi-space-size=2 app.js
适用于64位非Android。
这些将分别限制堆总数为225mb和450mb。它不包括JS外部的内存使用情况。例如,缓冲区被分配为“ c memory”,而不是在Javascript堆中。
您还应该知道,越接近堆限制,GC中浪费的时间就越多。例如,如果您的内存使用率为95%,则90%的CPU将用于GC,而10%的CPU将用于运行实际代码(不是实数,而是给出总体思路)。因此,您应该尽可能地宽大,并且不要超过最大内存使用量的16%(IE
heapUsed/limit不应大于
0.16)。16%只是我从某些论文中得出的结论,它可能不是最理想的。
标志:
--max-executable-size
为可执行代码保留的最大堆大小(即时编译的Javascript的本机代码结果)。--max-old-space-size
保留给长期对象的最大堆大小--max-semi-space-size
为短期对象保留的堆的最大大小



