【分析总结框架记录】使用distcc进行分布式编译来提高编译速度
来源:互联网 发布:淘宝商品图片搜索api 编辑:程序博客网 时间:2024/05/13 06:05
最近公司的项目快上线了《战甲online》 由于在GameServer中添加的业务模块太多,导致编译速度越来越慢。早期的时候通过C++的前置声明可以提高一些。但是后期发现还是跟不上。 公司的主程安排我来搭建一个分布式编译环境。
环境:centos6.3
1. 要使用distcc当然需要先去安装。这里使用官方源码编译安装。 下载地址:https://code.google.com/p/distcc/downloads/list
这里选择需要下载的内容,我选择的是distcc-3.2rc1.tar.bz2
2. 编译distcc源码需要先安装python支持, 在centos中使用 sudo yum install python-devel 其他linux可以参照
3. 安装好了python后,解压distcc源码:
进入distcc-3.2rc1.tar.bz2 : cd distcc-3.2rc1
执行:./autogen.sh ---->./configure ---> make -----> make install
4. 至此distcc就算安装完成,安装结束后还需要开启distccd这个守护进程。为方便每次自启动该守护进程,可以将其添加到开机自启动项
在centos中 可以到 /etc/rc.local 中添加
其中 --user 表明使用nobody这个用户身份 --allow 表明那一些ip允许访问,这里 192.168.168.0/8 表明192.168.168.1—192.168.168.254这个区间的IP可以使用该机器的distcc
5. distcc相关的环境变量:
distcc需要指明他可以使用的编译阵列。这些环境变量可以存放在~/.bashrc. 使用vim打开该文件:vim ~/.bashrc
DISTCC_HOSTS 指明那些机器安装了distcc 且开启了distccd。编译过程中可以使用这些机器进行编译
DISTCC_LOG 表明distcc相关日志
6. 重启centos
PS:在其他DISTCC_HOSTS列表中的机器上重复1-6步骤。 注意DISTCC_HOSTS 中的列表项用空格隔开。
7. 进入你要进行编译的文件目录:
-j16 可以同时编译多个, CXX=distcc 表明c++文件使用distcc来进行编译 对饮C文件 可以使用 CC=distcc
然后就开始编译了,在编译过程中可以使用命令 distccmon-text 2 来查看编译过程中使用了那一些机器
可以看到有很多文件在其他机器上编译。
就我们项目而言,之前单个机器上编译gameserver差不多需要20分钟,在部署之后,使用distcc编译缩短在6分钟左右。 效果不错。
PS: 这一类的工具使用建议直接去看官方使用指南,我之前看别人搭建的过程发现走了太多冤枉路。
官方指南:http://distcc.googlecode.com/svn/trunk/doc/web/index.html
- 【分析总结框架记录】使用distcc进行分布式编译来提高编译速度
- 使用distcc进行分布式编译来提高编译速度。
- 使用distcc进行分布式编译来提高编译速度
- OS X上搭建distcc使用XCode进行分布式编译
- OS X上搭建distcc使用XCode进行分布式编译
- 分布式编译 -- distcc+ccache
- Android分布式编译学习(二)使用ccache 提高编译效率 —— Ubuntu12.04上部署distcc分布式编译
- 【开发技巧】OS X上搭建distcc使用XCode进行分布式编译
- 搭建distcc分布式编译环境
- 搭建distcc 分布式编译脚本
- 安装distcc分布式编译环境
- 【分析总结框架记录】如何使用automake来管理你的编译
- MTK分布式编译提高编译速度
- MTK分布式编译提高编译速度(IncredBuild)
- 使用 distcc 缩短编译时间
- 使用 distcc 缩短编译时间
- 使用 distcc 缩短编译时间
- 搭建distcc分布式编译Android源码
- GPU---并行计算利器
- Unix基本系统数据类型
- 【分析总结框架记录】引用和指针在交换中的区别
- 分页机制的理解
- Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- 【分析总结框架记录】使用distcc进行分布式编译来提高编译速度
- HTML 标签 <!DOCTYPE>
- 使用python合并两个sqlite数据库
- AndroidStudio系列------------配置技巧
- 在Android中实现截图功能
- Android中Service类onStartCommand的返回值问题
- Oracle PL/SQL语句基础学习笔记(上)
- 【Linux学习记录】Linux系统架构与目录解析读书笔记_第1至第6章
- 闲聊CSS之关于clearfix--清除浮动