基于Ninja的分布式编译系统

来源 :中山大学 | 被引量 : 0次 | 上传用户:herozerg
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
伴随着信息技术的快速发展,软件项目的规模也越来越庞大。对于大型的软件项目,编译往往会是一个漫长的过程。软件开发者可以利用多核处理器的优势启动多个进程进行编译,从而减少编译等待的时间,提高工作效率。但单机编译存在性能瓶颈,即使是在性能较好的计算机上,编译一个大型的软件项目也是需要花费一定的时间。在这方面,谷歌公司的开源项目Chromium浏览器项目就是一个典型的例子,2015年1月份的统计信息显示,该项目总计22,186,303行代码,其中C++代码有12,829,876行。这样的项目在一台配置有Intel酷睿i7处理器,8G内存,120GB固态盘的机器上进行一次编译需要一到两个小时才能完成。本文针对以上的问题,基于谷歌工程师开发的单机编译系统Ninja,设计并实现了一个分布式编译系统。通过该系统,能够将以往只能在单机上完成的编译任务分解成许多小任务,分发给其他计算机进行编译,编译完成后汇总结果,得到与单机编译结果一致的可执行文件。论文的主要工作包括有以下几个方面:一是在编译系统Ninja源代码的基础上实现了分布式编译系统,从而可以突破单机编译的性能瓶颈,减少大型软件工程项目的编译时间,提高开发人员的工作效率。二是在Windows平台和Linux平台都实现了分布式编译系统,传统的分布式编译工具只支持在Linux平台上使用。三是该系统能够兼容现有的工具链,支持分布式编译后的使用相应的工具进行单机增量编译。目前,基于Ninja实现的分布式编译系统各组件功能基本实现,能够在实际项目的编译中使用。系统使用C++语言进行实现,有效代码行数约一万两千行。
其他文献
冠状动脉粥样硬化性心脏病(coronary artery heart disease,CHD)发病原因为异常的脂质代谢,在冠状动脉内膜形成粥样斑块,导致血管腔狭窄或堵塞。冠状动脉旁路移植术(CABG)是
<正>喻康原,1988年生人,大学本科学历。2010年进入农发行工作,现任南通市分行团委书记,荣获2016年度全国金融系统"优秀共青团干部"、总行"优秀团干部"以及省行工团条线、办公
目的:初步研究去泛素化酶11(Ubiquitin-specific peptidase 11,USP11)在放射性肺损伤发生进展过程中的生物学作用及其可能的调控机制。方法:(1)对Usp11基因敲除小鼠进行繁育
<正>家庭教育是在家庭生活中,由家长(首先是父母)对其子女实施的教育,即家长有意识地通过自己的言传身教和家庭生活实践,对子女施以一定教育影响的社会活动。习近平总书记在2
期刊
近几年来,健康家电发展非常迅速,市场上出现许多健康型的家电产品,如健康洗衣机、健康空调、健康饮水机、健康微波炉、健康冰箱、果蔬解毒箱等.
羊无浆体(Anaplasma ovis)是一种由媒介蜱传播的专性红细胞内寄生的革兰氏阴性菌,主要引起绵羊和山羊的无浆体病。羊无浆体病临床症状主要表现为发热、贫血、黄疸和消瘦,严重
通过对26个省区市横截面数据和3个直辖市面板数据的分析,并比较其各个方程拟合优度的大小,得出省联社体制下农村信用社和农业的关系并不紧密,与此同时在服务"三农"方面和一般
新手教师是教师队伍中的一个特殊群体,他们刚刚走上工作岗位,由于种种原因,对工作表现出各方面的不适应,有些新手教师因为一点点挫折而离开教师行业,造成教师人力资源的流失
目的探讨结核分枝杆菌多聚磷酸盐激酶2(PPK2)核酸适配体(aptamer)与体外结核分枝杆菌(Mycobacterium tuberculosis,MTB)共培养来评估其抑菌效果。为开发新的高效、低毒的抗结核药物
社区矫正入刑作为刑法修正案(八)的亮点之一,引起了社会的普遍关注,其中与社区矫正相关的刑事禁止令制度是这一亮点中的重点。刑事禁止令制度入刑体现了我国刑罚观念的转变,