编译程序时风扇转的很厉害

fenghelong 发布于 2014年05月11日
无人欣赏。

在MAC里面装了Linux虚拟机编译Linux平台版本软件,make -j16后,,风扇转的很厉害,电脑发烫要紧么?内存16G, 2.7GHz

共12条回复
pinxue 回复于 2014年05月11日

-j16 反而慢的。

andysunx 回复于 2014年05月14日

楼主是不是ME665,我觉得这批机器有问题。。。

tinyfool 回复于 2014年05月14日

编译的时候发热是正常的

Alexander 回复于 2014年05月14日

买个散热器

fenghelong 回复于 2014年05月18日

3楼 @tinyfool 风扇转的块也是正常的么?

fenghelong 回复于 2014年05月18日

2楼 @andysunx ME665是啥?我买的就是RMBP的那个,2万多的那个么。。

brambles 回复于 2014年05月18日

首先,不要使用 -j16这种蛋疼参数。-j 后面跟的数值最佳是你 cpu核数+1。

其次,如果需要多次编译,可以使用ccache来加速编译的过程。

最后,编译是高运算密集的任务,cpu满负荷很正常,风扇赚得很厉害也很正常。


我的整个操作系统+应用软件都绝大多数都是在本机编译的,所以对这些稍微比较了解。

andysunx 回复于 2014年05月19日

6楼 @fenghelong 机器型号,RMBP 2013年的高配

coredump 回复于 2014年05月20日

7楼 @brambles 不推荐 用 make -j N+1, 一般来说都是make -j N *M, 如果N是cpu core的数量,M一般用1或者2., 如果大部分源代码是小文件,但数量极多,M=2,否则M=1比较好. 这个也适合其它多线程程序的设置。 线程数为CPU核数的整数倍比较好,可以降低线程的切换开销。 当然ccache是极好的,再不满意就加上distcc。

这种时候风扇如果还不狂转,那就该送修了,转得越快乐,机器越正常。

参考这个 optimal-number-of-threads-per-core 可以看到 ProcessCount+1 洽洽会造成一个性能的陡降(纯理想情况下)。 alt text

brambles 回复于 2014年05月20日

9楼 @coredump

受教了。因为之前一个文档上推荐的是 N+1 ,所以就一直记着 N+1 了,也就没有深究过了。

不过如果只有一台机器,distcc就没有用武之地了。

coredump 回复于 2014年05月20日

10楼 @brambles 太客气了,其实这都是“理想”情况,事实上,机器里很多程序运行,IO也各种各样,加上任务的类型不同,多线程到底用多少合适,没有硬性标准,具体情况应该多用不同参数测试为准。而且Makefile是比较古老的软件,parallel编译很多时候还会出很诡异的bug,尤其对C/C++程序来说,所以不妨就单线程运行,借此机会看看窗外,聊聊天,喝点咖啡什么的多好。

brambles 回复于 2014年05月20日

11楼 @coredump

也是,现实环境里面可能本身就已经跑着非常多的任务了。这个线程数还真不好说。不过幸运的是我现在还没有遇到过make出现奇怪的bug。

至少我现在还抱着 vim make 这样的老古董写C/C艹代码而没有出现奇怪的问题,; )

本帖有12个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]