Overview:
Shannon, Warren and Rune from HQ go through some of the highlights Umbraco 8.15.
What’s new in Umbraco 8.15
We take a look at some of the highlights below but there's much more in the release, not least thanks to our friendly community. See the full list of features and fixes on the Umbraco 8.15 download page.
Umbraco has just gotten way faster. No less than 10 issues/fixes are performance-related and some of them are big changes and big improvements. It runs the gamut from optimizing how content is loaded in the Blocklist editor with fewer database calls, to improving memory allocation, startup time and cache optimization. All these things combined reduce the resource footprint of Umbraco CMS.
Faster to boot 👢
A lot of work has been done to optimize booting Umbraco up and both cold and warm booting has been improved. The changes relate to everything from cleaning up the boot events and timing to populating the cache lazily.
Block List editor performance enhancements
A number of optimizations have been done for the Block List editor. This is mainly targeting performance in the backoffice, ie. reducing the number of database calls.
Frontend cache optimisations
Querying content from the frontend caching layer has also been improved. These improvements will benefit all new projects based on 8.15+ (including Umbraco 9) but be aware that some of the new features are optional for projects upgrading from earlier versions.
General improvements include optimizations to database indexes, more efficient SQL queries and adding string interning in a number of places to reduce memory allocation and speed up string comparison.
If you are upgrading to Umbraco 8.15 you can enable compression for serialized data by adding the following configuration key:
<add key="Umbraco.Web.PublishedCache.NuCache.Serializer" value="MsgPack"/>
This change helps reduce the size of the data and thereby the memory allocated for the cache layer. This is enabled by default on all new Umbraco 8.15 installations but off by default when upgrading. If you want to ensure the “old way” of serializing data is used you can force it by adding:
<add key="Umbraco.Web.PublishedCache.NuCache.Serializer" value="JSON"/>
How much faster?
All of these improvements help make Umbraco faster by using less memory, fewer requests and storing data more efficiently. It can be hard to quantify the gains as they depend very much on the amount of content in a given site as well as the implementation. We have done profiling on a number of the improvements which you can see here: https://github.com/umbraco/Umbraco-CMS/pull/8376
Another huge benefit is that aside from being faster and using less memory, performance is also more consistent which makes it easier to profile, evaluate and optimize your own implementation.