incredibuild工具

2024-03-12 02:48
文章标签 工具 incredibuild

本文主要是介绍incredibuild工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:http://blog.csdn.net/zhangjian33446/article/details/6056878

配置可以参考这个博客的相册里的图片:http://blog.csdn.net/chief1985/article/details/6101566

项目大了 交叉引用多了 编译速度就慢了   所以联合编译就好用了   最近看了下这个工具   简单的记录下

 

1.incredibuild工作原理:本质上就是分布式计算  就是通过服务器的均衡   将编译分布在多个计算机上进行   简单讲就是说将一个计算机做的事分给多个计算机去做   这样就大大的提高了编译速度

2.使用方法:incredibuild分服务器和客户端   也就说coordinator和agent   在服务器上安装coordinator  在我们用的计算机上安装agent  然后就可以用了   说明下, agent和我们用的vs可以很好的结合   此外注意一些防火墙和插件对这个工具的影响 

 

以上是自己对这个东西的理解和使用   至于具体详细的使用还没仔细的试过  下面是几个文章   讲的是这个工具   还不错   记录下

 

转自:http://blog.csdn.net/hkx1n/archive/2010/08/12/5807194.aspx

IncrediBuild 进行联合编译

IncrediBuild是一款编程开发工具,可加快C/C++ 的编译和创建速度。能无缝集成到Visual Studio开发环境中,采用Xoreax 的多线程处理技术,不必改变项目文件的代码。    编译速度慢向来是C++/C程序语言的一个最大的弱点.开发者花费几个小时在工作站上等待整个产品的创建,或者一天好多次花十分钟等待不断增加的编译的完成—工作效率很低而且浪费时间.    IncrediBuild对此首次提供了独特有效的解决方案.通过使用Xoreax分布式编译(多线程处理)技术, Visual Studio project的编译速度将大大提高,而且不必改变项目文件代码    IncrediBuild无缝集成到Visual Studio开发环境,并且有很强的命令行界面,大大增强了Microsoft Visual Studio开发环境.
虽然现在计算机的运算速 度不断提高, 但大型软件的编译速度仍然是个漫长的过程,我所在的项目, 软件大小约为200K行, 在VC6下的编译时间为3分钟(P4 1.8G, 512M), 在交叉编译时更慢, 提高编译速度将能够直接提高前期调测的效率. 本文将介绍提高编译速度的有效方法之一 - 分布式编译.
分布 式编译的原理很简单, 就是将编译的整个工作量通过分布计算的方法分配到多个计算机上执行, 这样可以获得极大的效率提升. 由于分布式计算的技术相对成熟, 现在可以见到的分布式编译软件也较多. 一般来说, 一个分布式编译软件不是一个编译器, 而是附着在某个编译器上的分布计算管理软件, 使得对于特定的编译器可以实现分布式编译.
常见的分布式编译器通常是对应于特定的C/C++编译器, 如Gcc, Visual C++, 因为这些编译器使用相当广泛且开放度高. 因而实现分布式编译的意义更大. 下面分别以Visual C++和Gcc为例说明两个典型的分布式编译软件:
1)IncrediBuild
这 是一个对应Visual C++ 的分布式编译软件, 通过Visual C++强大的IDE扩展功能, 它有着非常友好的界面, 可以将整个分布式编译过程直观的展现给用户, 并且它通过一个"虚拟机"的技术, 使能编译的参与者可以与编译发起者有着不同的系统配置(Windows操作系统版本, 库文件等), 甚至无需在参与者机器上安装Visual C++.
IncrediBuild 需要一个特定的计算机做仲裁者, 其他的所有计算机作为客户, 有了仲裁者的好处是, 可以有它来统一安排所有客户端所发起的编译请求, 一旦某个客户发起编译请求, 则仲裁者会根据其他客户的CPU空闲情况而安排分布式编译, 当多个客户同时发起编译请求时, 仲裁者会自动平衡分布计算负担,使得编译参与者不会占用过多的CPU.
在我们的项目中, 使用IncrediBuild的结果如下:
未使用: 3分钟
5客户: 40秒
10客户: 25秒
可见IncrediBuild对编译性能的巨大提升, 并且在取得如此性能提升的同时, 仲裁者和编译参与者的CPU占用率很低. 保持相当高的可用性, 这是很难得的.
IncridiBuild的缺点是目前仅支持Visual C++ 6编译器和.Net编译器, 也仅适用于Windows平台. 适用范围相对较窄.

2)DistCC
这是一个GNU的分布式C++编译器, 适用于一切Gcc兼容的C++编译器, DistCC也具有很好的跨平台特性, 支持Linux, XFree86, CygWin等平台. 使用范围相当广泛.
DistCC和IncrediBuild的差别在与DistCC不使用仲裁者, 直接由客户端对其他客户端发起编译请求. 所以每个客户端都需要知道其他客户端的位置, 并且当多个客户发起编译请求时不易做平衡处理.

 

转自:http://blog.csdn.net/lacsis/archive/2009/08/27/4486783.aspx

 

初试分布式编译系统 IncrediBuild(转)

初试分布式编译系统 IncrediBuild

随着项目复杂性的逐渐增加,编译时间开始成为一个需要关注的问题。最近我的一个项目里,由于大量使用了C++的模板技术,导致编译时间非常长。尝试过很多其他方法,效果都不明显。今天,尝试了一下分布式编译系统 IncrediBuild ,感觉有些效果,特此简要记录一下。

测试前,我先对项目进行了几次 rebuild,以确定参考编译时间:

  • scons mytarget : 采用默认参数,编译时间为 20 分钟;
  • scons -j16 mytarget : 采用 scons 的并发编译,这样可以充分利用我的双核 CPU,编译时间为 13 分钟;

IncrediBuild 是一个分布式编译系统,由两大部分组成:Coordinator 和 Agent,Coordinator 类似一个中央任务分派器,用来管理各个编译 Agent:

architecture

我有两台可用作编译的电脑,台式机 Kingkong 是 Intel E5200,笔记本 Ninja 是 Intel T7100,它们都是双核 CPU 。根据这个架构,我在 Kingkong 上安装 Coordinator ,然后将 Agent 分别安装到 Kingkong 和 Ninja 上。

要进行 IncrediBuild ,还需要配置一个 xml 文件,比如我的就是:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?><Profile FormatVersion="1"><Tools><Tool Filename="python" AllowIntercept="true" /><Tool Filename="cl" AllowRemote="true" VCCompiler="True"/><Tool Filename="link" AllowRemote="false" /></Tools></Profile>

我将这个文件保存为 incredibuild.xml。然后从控制台启动 IncreditBuild:

] XGConsole /command="scons -u -j16 mytarget" /openmonitor /profile="incredibuild.xml"

启动后,一个图形化的编译界面就开始记录整个分布式编译过程:

aaa

编译结束后,从分析报告里看出,本次编译用了 10分钟又10秒。感觉比 13 分钟的单机编译没有提高多少。仔细分析原因,从图中可以看出,我的项目使用了 CUDA 的编译器 nvcc ,而这个编译器并不是被 IncrediBuild 所支持的,所以无法分派到远程 Agent 上进行编译。不过,对于 cl 这个 MSVC 的编译器,从图中可以看出确实体现了分布式编译的效果。所以,要想进一步提高编译速度,有两个方面:一是看看如何让 IncrediBuild 支持 nvcc 编译器;二是,增加更多的 Agent(不过增加更多的 Agent 似乎对于我的这个项目不会有太多的效率提高,因为我的瓶颈在于 nvcc 的编译过于缓慢了)。

当然,我也是初次尝试这个系统,对很多设置都还不太了解,比如我就很奇怪,那些使用的第三方库是怎么分派到远程计算机上的 呢?IncrediBuild 在设置时会为每个 Agent 分派一个缓冲区,默认是4G ,我估计这就是用来存放这些编译依赖的文件的地方,当然,具体怎样还需要进一步摸索。

总之,对于纯 C++ 的项目,我想,这个系统应该是能大大提高编译速度的。

 

 


这篇关于incredibuild工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/799898

相关文章

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

10个好用的AI写作工具【亲测免费】

1. 光速写作 传送入口:http://u3v.cn/6hXWYa AI打工神器,一键生成文章&ppt 2. 讯飞写作 传送入口:http://m6z.cn/5ODiSw 3. 讯飞绘文 传送入口:https://turbodesk.xfyun.cn/?channelid=gj3 4. AI排版助手 传送入口:http://m6z.cn/6ppnPn 5. Kim

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

IntelliJ IDEA - 强大的编程工具

哪个编程工具让你的工作效率翻倍? 在日益繁忙的工作环境中,选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度,甚至让团队协作更加顺畅。那么,哪款编程工具让你的工作效率翻倍?是智能的代码编辑器,强大的版本控制工具,还是那些让你事半功倍的自动化脚本?在这里我推荐一款好用的编程工具:IntelliJ IDEA。 方向一:工具介绍 Int

BIRT--商业智能和报表工具,从零开始

1.简介 BIRT (Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 JavaEE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。 2.下载 官网下载网址:http://download.ec