将Angular 升级到12后,我在运行ng命令时遇到内存不足问题
<--- Last few GCs --->
[29616:09494E78] 39092 ms: Mark-sweep 998.1 (1044.6) -> 991.9 (1046.6) MB, 831.0 / 0.0 ms (average mu = 0.219, current mu = 0.019) allocation failure; scavenge might not succeed
[29616:09494E78] 40489 ms: Mark-sweep 1000.0 (1046.6) -> 994.2 (1048.6) MB, 1387.2 / 0.0 ms (average mu = 0.095, current mu = 0.008) allocation failure; scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
我使用的节点版本是v18.14.0 32位,我在64位操作系统上使用32位nodej。
在谷歌搜索,我看到很多人建议添加参数--max_old_space_size=4096
,当我添加它,另一个错误报告:
# Fatal javascript OOM in GC during deserialization
64位节点18.14.0上不存在此问题。我可以在32位节点上添加多少内存大小?
1条答案
按热度按时间qco9c6ql1#
32位内存的分配取决于操作系统 * 和系统 。在Windows上,它曾经是 * 理论上的最大 * 2G,实际上接近1.5G,并且还取决于系统运行的时间(由于内存碎片)。看看Jonathan在这个答案下的评论:64位Windows中的32位节点,该值似乎是“ 几乎 * 4GB”,但请注意关键字是“几乎”,它肯定不是完整的4GB -所以留出一些余量)。
此外,32位系统往往相当陈旧,而且它们是否有足够的物理内存来分配最大值也是值得怀疑的。
您可能需要弄清楚当前的设置是什么,然后逐渐增加它。
(也许是不受欢迎的观点:...或者只是更新到64位系统。现在是2023年-我不知道还有32位Web开发正在进行。旧的和被遗忘的服务器:肯定-但不是新发展)