remote cache大致原理就是根据编译输入的sha码与编译输出建立(key,value)对,存储在远端cache.编译过程如果能匹配到key,则获取GET到value.如果hit不到key,则客户端在本地编译,并控制是否更新远端缓存库.

https://github.com/buchgr/bazel-remote/(https://golang.org/pkg/net/http/)   KEY: bazel-remote/server/http.go.......docker run -d -v `pwd`/bazel_cache/:/data -p 8080:8080 buchgr/bazel-remote-cache --max_size=20

build:remote --experimental_strict_action_env --remote_http_cache=http://192.168.1.102:8080
  build:remote --experimental_execution_log_file=/tmp/exec1.log
  build:remote --build_event_text_file=/tmp/bep.txt
  build:remote --remote_upload_local_results=false
  build:remote_cache --remote_upload_local_results=true

[3,541 / 3,565] 12 actions, 7 running
  ...lation_world:simulation_world_service; 0s remote-cache
  .../backend/sim_control:sim_control; 0s remote-cache
  ...lation_world:simulation_world_service; 0s remote-cache
  Compiling .../dreamview/backend/main.cc; 0s remote-cache
  ...lation_world:simulation_world_updater; 0s remote-cache
  ...lation_world:simulation_world_updater; 0s remote-cache
  .../handlers:websocket_handler_test; 0s remote-cache
  [-----] .../backend/handlers:image_handler_cpplint ...

...

INFO: Elapsed time: 68.628s, Critical Path: 8.32s
  INFO: 1212 processes: 1212 remote cache hit.
  INFO: Build completed successfully, 3700 total actions
  modules/perception/proto/perception_lane.proto: warning: Import modules/common/proto/error_code.proto but not used.
  1============================
  [ OK ] Build passed!
  [INFO] Took 234 seconds
  ============================

===================================================================================================distribute compilation 

Some conclusions:
  Buildfarm: Now it maybe still exists much problems. The work plan of project Buildfarm https://github.com/bazelbuild/bazel/projects/1.
  Buildbarn: The implement of Buildfarm in go. So see Buildfarm.
  BuildGrid: This project is an open source proj by python. It seems may work for us, and not try yet.
  distcc: This proj may be mature, but cannot use in bazel directly.And the bazel team suggests that remote execution has made huge leaps in the past year and a half and should be ready for you to try as a replacement of distcc.

In a word, try distcc or BuildGrid, and wait for Buildfarm.

在所有您想用来编译的机器上安装 distcc
启动每台机器上的 distcc 新进程
用变量名导出 DISTCC_HOSTS 环境变量
启动 distcc 监视器(这样就可以观察正在发生什么事!)
使用 CC=distcc ./configure ,而不是使用 ./configure 来进行配置
使用 make -j n ,而不是使用 make 或 make -j 2 来进行编译,其中,n 是 DISTCC_HOSTS中机器数目的两到三倍

转载于:https://www.cnblogs.com/cjyp/p/10622545.html

编译加速 remote cache相关推荐

  1. 编译加速的 8 个实用技巧 | 开发者说·DTalk

    本文原作者: 程序员江同学,原文发布于: 程序员江同学 关于 Android 编译加速的文章相信大家都看过不少,今天我们就一起来看看,在 AGP7.0 时代,除了传统的开启 build-cache,打 ...

  2. PHP 预编译加速: eAccelerator的安装和性能比较

    eAccelerator已经是很常用的PHP平台预编译加速的手段了.今天在自己机器上尝试安装了一下,备忘如下: 获得源代码: http://bart.eaccelerator.net/source/ ...

  3. python 预编译加速_让Python代码运行更快的最佳方式

    Python因其强大.灵活且易于使用等特性,而赢得了声誉.这些优点使其在各种各样的应用程序.工作流程和领域中得到了广泛应用.但是就语言的设计,也就是它天然的解释能力还有它的运行时的动态性而言,Pyth ...

  4. C++ builder 编译加速问题

    很多伙伴使用 C++ builder & Dephi 开发软件,但是他的编译速度让人崩溃 整理了一些加速软件,在文末,供大家使用! NAME    IDE VERSION    FILE   ...

  5. Rust编译加速crates.io

    编译Rust项目时需要访问crates.io, 由于网络环境原因通常比较慢,可以使用国内的crates.io地址: 编辑或新建~/.cargo/config文件,添加以下内容: [source.cra ...

  6. 原生编译加速 Java | InfoQ 专题

    Java 主导着企业级应用.但在云计算领域,采用 Java 的成本比它的一些竞争对手更高.原生编译降低了在云端采用 Java 的成本:用它创建的应用程序启动速度更快,使用的内存更少. 那么,Java ...

  7. 清华镜像源_Hyperledger Fabric2.x Docker镜像编译加速

    一.问题描述 最近工作需要对fabric2的源码进行改造,每次改完想要部署测试的时候,make docker这个命令执行起来超级慢.找到这篇文章的读者应该都遇到与我相同的问题,本文将分析问题产生的原因 ...

  8. 利用pre-compiled headers技术以加速编译速度(一)

    <初见pre-compiled headers技术> 过去我们撰写C/C++程序时,每个档案都必须利用编译器指令 #include 引入许多的系统标头文件才能够使程序顺利编译,接着经由连结 ...

  9. 编译小米2s CyanogenMod 版本遇到的几个问题

    背景介绍 为了破除我对android的神秘感,准备亲自编一个cm rom到真机上跑.反复看了cm 支持的devices, 我能网上,国内买到最便宜的,就只有小米2s了[0],为此特意从小米官网定了一个 ...

最新文章

  1. R语言plotly包可视化线图(line plot)、使用restyle参数自定义设置可视化结果中线条的颜色、使用按钮动态切换线条的颜色(change line color with button)
  2. 新建Java文件的 文档注释
  3. python 列表输入sql_SQL查询中的Python列表作为参数
  4. 麻省理工学院研究人员设计出针对幽灵党和熔毁的DAWG方法
  5. 在Visual Studio中使用任何C++编译器
  6. 一步步编写操作系统4 安装x86虚拟机 bochs
  7. linux shell read line,【Linux shell】while read line
  8. volatile是怎么保证可见性和有序性的,为什么无法保证原子性
  9. JavaScript学习笔记:语句
  10. 开源项目到底归谁管?
  11. 50以内的质数顺口溜_【停课不停学】学习妙招|小学数学学习中的顺口溜,记住了事半功倍!...
  12. 一级计算机word文档模拟题,计算机一级word考试试题
  13. postman安装使用教程---图文讲解
  14. 支付宝,模拟支付,JavaWeb为例
  15. 《GCAMatting:Natural Image Matting via Guided Contextual Attention》
  16. 2019 ICPC 南京区域赛 - H Prince and Princess(博弈+思维)
  17. 为员工 尚德机构建教育圈最大期权池
  18. storm throw 口袋妖怪_~~~~~~SOS!SOS!SSSSSSSOS!!!~~~那位大侠能给贴一个全招式的英文对...
  19. Regionals 2015 Asia - Daejeon acmliveoj7233 - Polynomial
  20. C4D阿诺德Arnold渲染器:C4DtoA mac版(支持c4d r23)

热门文章

  1. matlab中输入x. 与x的区别
  2. zookeeper配置文件说明
  3. MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持
  4. Asp.net高效导出excel篇之Aspose导出excel
  5. Silverlight、XAML实现滚动文字
  6. jsp连接Sql Server 2000数据库
  7. JSON.stringify( new WebSocket(ws://localhost:8080/websocket.do))
  8. 【Vue2.0】—Vue脚手架配置代理(二十二)
  9. 数据库原理—关系模型的数据操作(八)
  10. JavaScript学习(七十)—函数中this的指向问题