我们有一个基于Linux的构建系统,其中构建包含许多不同的嵌入式目标(启用了相应的驱动程序和功能集),每个目标都使用另一个主源树构建。
我们希望找到同时为所有这些目标启动构建的最佳方法,而不是尝试将基于make的系统转换为更加多进程的系统。我不确定的是如何获得最佳表现。
我考虑过以下可能的解决方案:
我打算坐下来尝试这些可能性,但我想检查一下我是否错过了什么。谢谢!
答案 0 :(得分:1)
就软件解决方案而言,我可以推荐Icecream。它由SUSE维护,并以distcc为基础。
我们在以前的公司非常成功地使用了它,它的构建要求与你描述的类似。
答案 1 :(得分:0)
如果您对快速增量性能感兴趣,那么计算需要重建的文件的成本将占用实际编译时间,这将对机器之间的高效I / O提出更高的要求。
但是,如果你最感兴趣的是快速完全重建(例如每晚构建),那么你可能更好地将源代码树发送到每个构建从服务器,或者甚至让每个构建从服务器检查它自己的副本来自源头控制。像Hudson这样的CI系统将有助于管理每个从构建服务器。
答案 2 :(得分:0)
如果您的makefile足够完整且结构良好,如果您的构建计算机有足够的内存,-j
标志也可能有助于克服I / O瓶颈。这样可以使多个独立的任务并行运行,这样您的CPU理想情况下永远不会阻塞等待I / O.通常,我通过允许比计算机中的CPU更多的任务来找到好的结果。
从您的问题中不清楚您当前的makefile是否不适合这种情况,或者您是否只是想跳到与制作完全不同的东西。