Huge Build & Test Performance Improvements #862
marcuskohlberg
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We've just released Encore v1.25 which comes with several large build & test performance improvements!
As always, update with
encore version update
.Improved CI Build & Test Speeds
Encore's CI system now uses a brand-new streaming cache system. Previously Encore tar and untar-ed the build & test cache, adding to the build time and leading to an unfortunate trade-off between cache hit rate and cache restore/save times.
With this release, Encore now uses a streaming cache that on-demand downloads and uploads individual cache entries. This entirely removes the cache restore/save steps, leading to a substantial speed-up. Additionally, the improved cache accuracy leads to more parts of the build being cached, further improving build times.
We've seen up to a 70% reduction in build & test times for many real-world applications, depending on the nature of the change.
Improved Local Development Performance
We've further optimized how Encore's code generation works, leading to improved build & test times, particularly when the changes are small (compared to the previous build). Depending on the change this new release should offer a 10% to 100% reduction in build times (yes, you heard that right!), and similar improvements to test execution speeds through improved test caching.
Additionally, we've further improved the Live Reload speed by improving the graceful shutdown process. More on that below.
Graceful Shutdown Improvements
Encore now implements a more optimized graceful shutdown process, reducing shutdown times when there are no outstanding requests being processed. Encore also provides the
encore.dev/shutdown
package that allows services to opt-in to more detailed information about the shutdown process, by implementingshutdown.Handler
on a service struct.The old signature (
func (*Service) Shutdown(force context.Context)
) is still supported for backward compatibility.❤️ As always, we're excited to hear what you think!
Please share your feedback on Slack.
This discussion was created from the release Huge Build & Test Performance Improvements.
Beta Was this translation helpful? Give feedback.
All reactions