Ubuntu下16GB内存笔记本编译Chromium因内存不足挂起崩溃
解决Chromium编译内存溢出与并行进程过多的问题
1. 限制Ninja并行编译进程数
autoninja默认会用CPU核心数启动并行编译,你的i7-1260P有12个核心,所以默认跑12个clang++进程,16GB内存撑不住。直接用-j参数指定更小的并行数:
autoninja -C out/Default chrome -j 4
也可以设置环境变量让后续编译自动生效:
export NINJAJOBS=4
建议从-j 4开始尝试,根据编译时的内存占用调整到合适数值(比如-j 6)。
2. 通过GN配置降低单进程内存消耗
生成编译目录时,添加GN参数优化内存占用:
- 编译Release版本(比Debug版内存占用低很多),关闭调试符号:
gn gen out/Default --args='is_debug=false symbol_level=0 enable_ccache=true'
- 若仍内存紧张,关闭LTO(链接时优化,非常占内存):
gn gen out/Default --args='is_debug=false symbol_level=0 enable_ccache=true use_thin_lto=false'
这些参数能减少单个clang++进程的内存增长幅度,从根源降低内存压力。
3. 临时添加交换空间缓解内存不足
如果不想调整编译参数,临时创建交换文件补充物理内存:
# 创建16GB交换文件 sudo fallocate -l 16G /swapfile # 设置权限 sudo chmod 600 /swapfile # 格式化交换文件 sudo mkswap /swapfile # 启用交换 sudo swapon /swapfile
编译完成后可关闭并删除交换文件:
sudo swapoff /swapfile && sudo rm /swapfile
内容的提问来源于stack exchange,提问作者lfk
相关产品推荐
相关产品推荐

