小公司的大项目要咋办?
今天跟一个朋友聊天,他跟我说他在一个牛逼的公司,他们公司的产品可以让编译加快几倍,十几倍。然后我就说,大公司有的是服务器,小公司也没啥大项目,然后他跟我说,一大把大小公司需要编译安卓,安卓这个项目够大了吧。
然后我就想,我之前因为编译安卓NDK,让我头大的很。
然后他介绍了快编大师这个东西,因为我之前是没有接触过的,所以今天就写写这个东西,毕竟这个东西也是挺有用的东西,但是我不确定的是这个东西对大家是不是有用的东西,如果这个东西真的有用,希望大家也用这个东西。
什么是快编大师?
这个是中文名字,英文的名字叫做「incredibuild」
网址「https://www.incredibuild.cn/」
这个东西有什么用?
Incredibuild 利用网络中的空闲 CPU 或云计算,为每台机器武装数百个内核,从而为耗时的软件开发加速。充分发挥您的网络潜能,提升产品质量,缩短上市时间,提高开发工作效率。
简单说就是,它可以缩短你项目的编译时间,有多短呢?我们看一些具体的数据。
原来 90 分钟的编译时间,可以缩短到只有 24 分钟。
因为我之前没用过这个东西,然后在群里跟大家讨论了下
因为我跟一个朋友刚好是快编大师那边的开发,顺便就跟他讨论了一些技术上的问题。
「Incredibuild
简称 IB
」
Incredibuild在分布式编译的时候,他使用别人的主机是一个准则,就是优先使用空闲的资源,我们会判断其他主机上Cpu的负载,当Cpu的负载比较空闲的时候,他才会选择去使用,去做编编译加速,另外就是当我的机器资源跟编译任务冲突的时候。会以本机的占用优先,第三的话就是我们也可以去做一些使用合作的限制,就允许只贡献部分的资源去帮助别的机器去做编译。
一般来说的话,目前IB主要是在局域网内去做一个主机联网,目前局域网的带宽基本上都是千兆甚至万兆以上。而且主机通信传输资源过程当中它是一个实时传输,就是说它只会去传输部分的资源,并不是把所有的一些代码全部进行同步传输,另外一点的话,就是我们还有一个类似于文件缓存的一个技术,就是当一些编译器里边会缓存到主机上去,那么在后续的编译中,他他就不需要再去做一个资源同步了。
问
答:
跟distcc这种开源工具比的话,我们IB的一个资源使用方式的话,是比他们简单的,就我们只需要在所有主流的客户端上去装上IB就可以用了,不需要做任何配置。基本上是做一个开箱即用的方式,然后像distcc的话,还需要在他所在的所有主机上去做一些IP,网络的配置等等。
问:
我有钱自己买了编译服务器不就好了,为什么还需要IB这玩意呀?
答:
因为IB是动态化的最大化利用你现有计算资源,根据不同的项目编译需求灵活调配。如果购买一个64核的服务器,就是固定的64核,那么如果说后续的项目一些项目可能需要上百个核资源还需要不断的增加这个服务器。但如果用Ib将有很多开发机的空闲资源是可以利用起来的话,就不需要额外再投入费用买硬件 。
最后
大家如果有对这个东西有兴趣的,或者项目有使用上的,可以咨询他们公司的这个技术服务人员。
看了下网上的信息,这东西用户还是挺多的,而且社区也非常活跃,我想着存在即合理,不可小觑。
给我的这个技术支持微信咋看起来像是广告一样,🤔️
我说的小企业没有大项目,绝对是说错了。