博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[原]distcc源码研究五
阅读量:4306 次
发布时间:2019-06-06

本文共 857 字,大约阅读时间需要 2 分钟。

作者:朱金灿

来源:

 

        在《》我们分析到distcc将编译服务器取出并进行锁定。我们主要分析的是dcc_build_somewhere函数。dcc_build_somewher比较复杂。在进一步分析dcc_build_somewhere函数之前,我感到我们有必要对distcc的工作原理作一个简单的了解。distcc的工作原理简单来说是这样的:distcc 将预处理代码发送给网络中的其他指定机器。distccd 守护进程确保编译在远程机器上发生,因此在编译时验证 distccd 守护进程正在远程机器上运行。因此dcc_build_somewher函数大致是分为两步的:一步叫远程编译,其实就是将预处理代码发送给网络中的其他指定机器,另一步就是本地编译。因此我们得到以下一些猜测:所谓的远程编译实际上是本地机器将预处理代码发到网络中的其他指定机器,实际上编译进程是发生在其它机器上的,这里涉及到本地机器和其它机器的通讯过程,远程编译完成后必然要把编译结果传给本地机器,本地机器也必须等待远程编译完成之后才能进行本地编译。由此你也看出DistCC和IncrediBuild的差别在与DistCC不使用仲裁者, 直接由客户端对其他客户端发起编译请求. 所以每个客户端都需要知道其他客户端的位置, 并且当多个客户发起编译请求时不易做平衡处理。

 

         在接下来的日子里我们将研究下面问题:

1. distcc客户端将预处理代码传给服务端,那么在程序中预处理代码到底是什么?

2. distcc客户端是如何服务器端通讯的?

3. distcc客户端是如何等待远程编译完成的?

4.  远程编译完成后将编译结果传给客户端,在程序中编译结果具体指什么?

5.  本地编译的具体过程又是怎样的?

 

参考文献:

 

1. 

 

2. 

作者:clever101 发表于2012-2-6 23:06:51
阅读:231 评论:0

转载于:https://www.cnblogs.com/wdpp/archive/2012/02/06/2387083.html

你可能感兴趣的文章
session案例之验证码
查看>>
数据导出生成word附件使用POI的XWPFTemplate对象
查看>>
页面调用系统window打印
查看>>
将给定数据源生成静态HTML页面持久化到项目之外的硬盘
查看>>
Spring全自动AOP和项目加入jar包
查看>>
AOP联盟通知类型和Spring编写代理半自动
查看>>
不同情况通知执行的顺序
查看>>
bean.xml配置数据源和读取配置文件配置数据源
查看>>
PHP正则表达式
查看>>
CSS 设计指南(第3版) 初读笔记
查看>>
markdown学习/mou
查看>>
CentOS 搭建 LAMP服务器
查看>>
今天我注册博客园了,我很开心!
查看>>
游戏开发-从零开始 002
查看>>
N个串的最大公共子串——(9018_1856)
查看>>
VC编程心得
查看>>
mysql那些事(6) WHERE条件 字符串的引号
查看>>
微信支付配置参数:支付授权目录、回调支付URL
查看>>
Redis(四):Spring + JedisCluster操作Redis(集群)
查看>>
百度正式发布PaddlePaddle深度强化学习框架PARL
查看>>