PB分布式编译有什么类似distcc的工具吗?

时间:2022-08-21 08:53:57
这样我build一个新的platform的时候分布到其他PC,可以加快速度

linux下有distcc,win32下有什么类似的工具

6 个解决方案

#1


最近我做了一个基于ARM的分布式编译系统,用于手机MTK平台的软件开发。

MTK分布式编译系统2007-09-29 23:09 
       众所周知,MTK平台使用ARM ADS进行编译,一千多个源文件,单机需要四五十分钟才能完成,如果机器开着杀毒软件,速度会更慢。为了提高编译速度,可以把杀毒软件暂时停掉,但是效果不会太明显。解决问题的根本做法是利用网内闲置的机器,搭建一个分布式系统,多台机器同时编译,可以收到明显效果。

        本系统由注册服务器、编译服务器和客户端组成。网内启动一个注册服务器,多个编译服务器。在MTK6223平台上,单机new一次需要50分钟的项目,使用10个编译服务器同时编译,new一次需要13分钟。模块编译之前是在客户端工作的,需要9分钟,其中为了实现分布式编译,压缩源代码占用了2分钟,文件下载到编译服务器需要2分钟。从第一个模块编译到最后link之前,10台机器仅用4分钟就完成了1200个c文件的编译工作。最后的link是在本机进行的,几十秒就完了。我曾经试过18台机器同时编译,1200个c文件不到2分钟就编译完成了,当然下载时间需要3分钟。对于开发人员来讲,new一次不再是梦魇。

         当然,不能无限制地增加编译服务器,要考虑文件传输所消耗的时间。MTK平台文件很多,需要由客户端向服务器分发。一般地,一个客户端与十个服务器联合编译可以达到理想效果。

         如果您对此感兴趣,请与我联系,很高兴与大家分享快乐。我的邮箱是:cliffinlin@hotmail.com
 

#2


自己实现的很好!能不能说说实现细节??

如果是ADS,可以使用命令行make,你是不是把文件分发到其他PC,其他
PC make之后把OBJ文件给发回来?

#3


1.客户端使用make进行预处理,将需要编译的源文件打包发给编译服务器.
2.编译服务器接收c文件,将其编译成obj,再上传给客户端.
3.客户端收到所有的obj之后进行后处理,形成库文件和bin文件

#4


该回复于2008-05-04 22:42:22被版主删除

#5


该回复于2008-05-04 22:42:59被版主删除

#6


分布式编译成本太高!
我现在多核编译!
6223只需要8分钟
07b需要11分钟
6235需要29分钟!
成本低!高效才是硬道理!
地址:
http://liuhonghao1982.spaces.live.com/blog/cns!B78FD5C436AF9690!1869.entry

http://liu6545.bokee.com/viewdiary.181572694.html 

#1


最近我做了一个基于ARM的分布式编译系统,用于手机MTK平台的软件开发。

MTK分布式编译系统2007-09-29 23:09 
       众所周知,MTK平台使用ARM ADS进行编译,一千多个源文件,单机需要四五十分钟才能完成,如果机器开着杀毒软件,速度会更慢。为了提高编译速度,可以把杀毒软件暂时停掉,但是效果不会太明显。解决问题的根本做法是利用网内闲置的机器,搭建一个分布式系统,多台机器同时编译,可以收到明显效果。

        本系统由注册服务器、编译服务器和客户端组成。网内启动一个注册服务器,多个编译服务器。在MTK6223平台上,单机new一次需要50分钟的项目,使用10个编译服务器同时编译,new一次需要13分钟。模块编译之前是在客户端工作的,需要9分钟,其中为了实现分布式编译,压缩源代码占用了2分钟,文件下载到编译服务器需要2分钟。从第一个模块编译到最后link之前,10台机器仅用4分钟就完成了1200个c文件的编译工作。最后的link是在本机进行的,几十秒就完了。我曾经试过18台机器同时编译,1200个c文件不到2分钟就编译完成了,当然下载时间需要3分钟。对于开发人员来讲,new一次不再是梦魇。

         当然,不能无限制地增加编译服务器,要考虑文件传输所消耗的时间。MTK平台文件很多,需要由客户端向服务器分发。一般地,一个客户端与十个服务器联合编译可以达到理想效果。

         如果您对此感兴趣,请与我联系,很高兴与大家分享快乐。我的邮箱是:cliffinlin@hotmail.com
 

#2


自己实现的很好!能不能说说实现细节??

如果是ADS,可以使用命令行make,你是不是把文件分发到其他PC,其他
PC make之后把OBJ文件给发回来?

#3


1.客户端使用make进行预处理,将需要编译的源文件打包发给编译服务器.
2.编译服务器接收c文件,将其编译成obj,再上传给客户端.
3.客户端收到所有的obj之后进行后处理,形成库文件和bin文件

#4


该回复于2008-05-04 22:42:22被版主删除

#5


该回复于2008-05-04 22:42:59被版主删除

#6


分布式编译成本太高!
我现在多核编译!
6223只需要8分钟
07b需要11分钟
6235需要29分钟!
成本低!高效才是硬道理!
地址:
http://liuhonghao1982.spaces.live.com/blog/cns!B78FD5C436AF9690!1869.entry

http://liu6545.bokee.com/viewdiary.181572694.html