TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

If a Build Takes 4 Hours, Run It Every 4 Hours

17 点作者 royosherove大约 5 年前

7 条评论

_ph_大约 5 年前
I don&#x27;t know what the author is building that a build is taking 4 hours, but I am aware that there are huge software projects with build times like that and much longer. I agree that getting quick feedback to changes is vital for quick overall development. This shows the values of development stacks which reduce the build times a lot. As a resultmore incremental development can be done. For example, the build times were one of the architectural goals when designing the Go language.<p>Dynamic languages are also a great tool to fight build times. Even if it is unsuitable for large projects to be entirely built on dynamic languages, a great technique is using a mix of static and dynamic. Build the core of the application in a static language, but more as a set of libraries to be called from the dynamic layer. The dynamic layer is where most of the application logic resides, easy to be changed. And parts which have stabilized reasonably can still be moved over to the static part.
评论 #22915494 未加载
评论 #22916151 未加载
评论 #22918281 未加载
评论 #22914892 未加载
noisy_boy大约 5 年前
We have Maven builds that complete in a few mins via Jenkins but I have been exploring if it can be done even faster. The builds are written using the Jenkins declarative pipeline with parallelization etc but feels like it is just not fast enough (the slowness is probably because of the whole lot of intermediate IO&#x2F;back-and-forth between Jenkins master and slaves). Wish there was a build setup that was faster while being as feature rich as Jenkins while supporting Maven builds.
评论 #22917721 未加载
tedunangst大约 5 年前
Tying your build frequency to build time <i>and then using that as motivation to decrease build time</i> is probably the important bit here, but only if you include the second part.
评论 #22914818 未加载
teleforce大约 5 年前
If the long build time for static typing programming language is the concerns perhaps you can try have look at D programming language since it is optimized for fast compilation [1].<p>Around last year someone even managed to speed up its compilation time even further and it is also featured in Hacker News but cannot find the link now.<p>I think in the future most of the static typing programming languages will be mainly based on Single Static Assignment (SSA) technique then the compilation could really fly.<p>[1]<a href="https:&#x2F;&#x2F;www.drdobbs.com&#x2F;cpp&#x2F;increasing-compiler-speed-by-over-75&#x2F;240158941" rel="nofollow">https:&#x2F;&#x2F;www.drdobbs.com&#x2F;cpp&#x2F;increasing-compiler-speed-by-ove...</a><p>[2]<a href="https:&#x2F;&#x2F;www.cs.princeton.edu&#x2F;~appel&#x2F;papers&#x2F;ssafun.pdf" rel="nofollow">https:&#x2F;&#x2F;www.cs.princeton.edu&#x2F;~appel&#x2F;papers&#x2F;ssafun.pdf</a>
gregdoesit大约 5 年前
Alternatively, you can parallelise parts of your build (eg the tests, static analysis etc) and speed it up. Then, if you have more changes coming in than you could parallelise is when you can start to do some advanced things like trying to predict which changes might break the build.<p>There was a longer discussion on one of these approaches done by Uber[1] on HN. Granted it’s a lot of investment, it’s interesting to explore ways of dealing with long builds that need to run frequently.<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19692820" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19692820</a>
评论 #22916146 未加载
评论 #22914815 未加载
DmitryOlshansky大约 5 年前
Why not every hour or even half-hour?<p>Provided that you can run multiple builds in parallel but each of them has somehow limited parallelization.
tlarkworthy大约 5 年前
Why don&#x27;t we run it on every change?
评论 #22914995 未加载
评论 #22914702 未加载
评论 #22914783 未加载