为何部分NodeJS任务会导致Ubuntu系统冻结而Windows无此问题?
Linux vs Windows 内存/进程管理差异:AngularJS项目测试时的系统表现问题
最近我碰到了个特别头疼的技术问题,想跟大家探讨探讨:我正在开发一个基于AngularJS的大型前端项目,里面包含上百个Jest测试用例。我的设备配有16GB内存,但这个项目负载极高,有时候会直接把内存耗尽;而且在项目运行的同时执行yarn test(会占用3-4GB内存)或者跑Cypress工作流测试时,Linux系统经常出现严重延迟,甚至会冻结几分钟或者直接崩溃。我特意把交换空间(swap)扩容到了16GB,可问题还是没解决。
后来因为工作需求,我在Windows 10环境下运行这个项目,结果完全没遇到这类问题:哪怕内存被耗尽、CPU占用率达到100%,系统依然流畅运行,甚至开启屏幕共享的时候图形界面都没有卡顿;我还能同时运行20个yarn test任务,几乎没什么延迟——这在Linux环境下就算扩容了swap也根本做不到。
我了解到Windows默认启用了内存压缩功能,而Linux没有默认配置,但对比测试中Windows的压缩内存最高仅为549MB,这似乎并不是关键原因。一开始我怀疑是GNOME桌面环境太重且偶尔有bug导致的,但切换到KDE之后问题依旧存在。我也听说Windows会为图形环境分配专属资源,而Linux可能将其视为普通进程,但这没法完全解释为什么Linux系统会整体冻结,而Windows却完全没有这种现象。
所以我现在有点疑惑:难道Windows在内存或进程管理机制上真的显著优于Linux吗?
我的设备配置
- 电脑型号:Dell XPS-15-7590
- 处理器:Intel Core i7 9750H,2.6GHz,最高睿频4.5GHz(6核12线程)
- 内存:16GB
- 显卡:GTX 1650M
- 屏幕:4K 16:9
- 固态硬盘:NVME 512GB
内容的提问来源于stack exchange,提问作者Enzo Dutra
相关产品推荐
相关产品推荐

