实习学到的东西(四)

1、incredibuild

参考文章:
IncrediBuild工具使用及设置
Xoreax IncrediBuild

incredibuild是一个可以提高编译速度的对应Visual C++ 的分布式编译软件。

  • 分布式编译
    分布式编译的原理很简单, 就是将编译的整个工作量通过分布计算的方法分配到多个计算机上执行, 这样可以获得极大的效率提升. 由于分布式计算的技术相对成熟, 现在可以见到的分布式编译软件也较多。一般来说, 一个分布式编译软件不是一个编译器, 而是附着在某个编译器上的分布计算管理软件, 使得对于特定的编译器可以实现分布式编译。

  • 优点

    • 缩短开发时间
      IncrediBuild通过高效的并行计算实现加速创建应用,它利用网络上空闲的CPU资源,将PC和服务器网络转换到被称作“虚拟超级计算机”的私有计算云中。任务进程被分发到远端CPU资源用于并行计算,动态缩短创建应用时间。
    • 易于安装,使用和维护
      IncrediBuild是一个运行在用户现有硬件上的即插即用实时解决方案,不改变项目文件或源文件,不存在安装,维护,虚拟机维护等工作量。 加速开发是IncrediBuild的任务。
    • 保证速度和性能
      文件缓存和实时压缩技术减少了网络流量,自适应的资源分配技术根据变化的CPU容量来动态地分配任务。利用竞赛式的可用代理实现任务加倍,以避免瓶颈效应。
    • 获取高性能计算水平的处理效果
      IncrediBuild可以运行在任何基于Windows的机器上,包括单核机器,多CPU机器,多核构建服务器,甚至扩展到公共云。
  • 工作原理
    IncrediBuild需要一个特定的计算机做仲裁者, 其他的所有计算机作为客户, 有了仲裁者的好处是, 可以由它来统一安排所有客户端所发起的编译请求, 一旦某个客户发起编译请求, 则仲裁者会根据其他客户的CPU空闲情况而安排分布式编译, 当多个客户同时发起编译请求时, 仲裁者会自动平衡分布计算负担,使得编译参与者不会占用过多的CPU。

  • 使用时要注意的点
    incredibuild会自动判断哪些文件需要重新编译而哪些不需要,当执行build命令时只会重新编译它认为需要重编的文件,但是当执行rebuild时会整个解决方案/项目重新编译!!! 所以如果没有特别情况又想节省时间就一定要点build而不是rebuild,编译时长差了非常多

2、编程技巧

  • 当解决方案build失败时要先看看报错信息,可以先解决单个代码文件的错误,等该代码文件编译成功后再整个解决方案build。如果出现cannot find file的错误,可以看看各个项目的依赖项,当一个项目中代码引用了另一个项目的代码而他们又没有依赖关系时,就会报这个错,此时要重新考虑是否真的应该用到这些代码,能否有其他解决方案。

  • 项目中有许多自定义数据结构和json格式数据,如果这些数据某些字段的值存在问题,可以查找所有改变or赋值该字段的地方,看看原因出在哪里。

  • 修改或添加数据结构时,要仔细考虑每一种实现为什么不好,为什么更好。比如有一次任务需要实现下推两种不同礼包的信息,我就在纠结应该用一个bool值表示下推的是哪个礼包好,还是再添加一个容器来记录第二种礼包的信息比较好,原以为用bool的实现会更好,因为节省空间;但是导师提醒我添加容器的方式更好,因为只有在玩家登陆和领取礼包时才会推送礼包信息,而登陆时两种礼包的信息都需要获取,如果用bool实现,客户端就需要做不同的处理,类似的消息要接收两次处理两次,而就算一起下推数据也不多(大概最多只有七八个int元素),因此用第二种实现更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值