大项目中稍不注意,编译链接速度就逐渐变慢。如果没人关心这个问题(就像我现在这个公司),项目开发效率就会降低,软件质量下降。程序员有充足的理由怠工和玩手机(因为正在编译),这些精力本应该投入到对软件的思考上去的。如果项目经理继续忽略这个问题,这个问题早晚会爆发出来,可能是在客户交流会议上或产品交付时。
我们有下面这些问题:
1) 不知道pimpl手法
项目组进进出出几十号人了,几乎没用过pimpl手法。宁愿在class定义中声明一堆私有成员,也不愿意把它们真正隐藏在实现文件内。
2) 为了省事,创建一个超级include文件。
用这个超级include文件,先预先include入可能需要的大多数文件。就是为了能少敲入很多include语句行呢!真实懒到家了,多敲入几行include能累死人?
这个嫌累了,项目延期加班就不嫌累了?
3)不用前向声明
前向声明都很少用,无语了。给主管说这个事(博士出身),不以为然。怪不得你领导的产品,客户嚷嚷着要退货呢,你自己也会大学回回炉吧!
4)设计时不知道强内聚,弱耦合
不管是面向过程,面向对象,还是面向宇宙编程,这个规律一直是主导的啊!设计时,不管不顾,编译时肯定互相牵连,拖慢速度呀!
给人家说这个词,就好像对牛弹琴一样。这种公司留住人才才怪。
5)不用预编译头
pch不用,解释说是个别工程编译不出来了。无语了,那应该是设置问题,或者stdadx.h中的东西需要精简一下了。
6)boost竟然用静态库版本
一大堆dll需要编译,每个dll竟然都静态链接boost库。既然知道dll能加快编译和链接速度,却不懂boost库居然有动态库版本
7)幸好知道用分布式编译
但是链接时间超长,也没人发现(发现了也没人管)。公司用incredibuild。通过设置某些选项可以加快链接速度
最简单的解决方法是:关闭incredibuild的链接阶段,让vs工具自己链接程序。
8)/MP选项未打开
此为多CPU并行编译,可提高编译速度
9)破机器,不舍得升级
给上级提硬件升级的事,不舍得。这个世界人力成本太高了。宁愿招聘一大堆不合格的程序员,也不愿意升级硬件配置。
我做领导,高薪招几个高手,配高档机器,做出的东西肯定比一堆菜鸟配低端机器的产品强!