科技食谱

“一行代码”将程序执行时间减少了99%

工程师必须努力在几秒钟内提高程序执行速度和网站显示速度,但是有时会有一些令人难以置信的荒谬改进。照片共享服务Pinterest通过其自己的博客,介绍了一种情况,该情况通过单行代码更改将执行时间减少了99%。

加快执行速度的一件事是工程生产力团队,该团队为与Pinterest中的软件构建和部署相关的工程提供支持。 Pinterest在GitHub上有六个存储库(Pinboard,Optimus,Cosmos,Magnus,iOS,Android)。其中最老的是硬纸板存储。如果复制了超过350,000的全部完成计数,那么它将是一个巨大的存储,其数据大小超过20GB。该团队正在执行此类存储维护等。

Pinterest使用自动化工具Jenkins构建和分发软件,并通过将代码放在自动化过程的开始来从GitHub存储库中复制最新的软件包。我们正在设计加快大型存储库的复制速度,例如指定仅获取最新的50次提交(深度:50)或仅获得最新的提交历史记录(浅)的选项。

在此代码的改进代码中,添加了“ refspec:+ refs / heads / master:refs / remotes / origin / master”。添加到改进代码中的选项是一个选项(refspec),它可以指定要处理的点的范围。如果克隆时未指定git设计和选项(refspec),则将获得提交历史记录,该历史记录将获取远程存储库的所有分支。对于Pinterest存储库,在改进之前撤消存储库中的所有2500个或更多分支,并复制主分支效率不高。改进的代码将refspec提取的分支限制到master分支。

这种单行更改需要40分30秒才能进行存储复制。就比例而言,成功降低了99%。构建软件的整体速度也得到了显着提高。 Pinterest说,单线差异有时可能会产生很大的差异。相关信息可以在这里找到。