MAUI and MSpec v1.1.0 Support and Faster engine start times

by Remco 30. August 2022 09:30

NCrunch v4.14 has just been released with some quality of life improvements and further extended compatibility.


Faster Engine Start Times

One of the more time consuming tasks NCrunch needs to perform when starting is to load its coverage database from file and unpack it into memory.  On some solutions, this coverage database can be very large and it usually makes up the largest portion of NCrunch's memory consumption.

We've now introduced a new packing/unpacking system that allows the engine to use parallel threads to unpack the database.  The data is now also packed more efficiently, which should make for a much smaller NCrunch .cache file.  If you're working on a large codebase with many coverage points and abundant background threads, you should notice a significant improvement in engine start times.

MAUI Project Support

We've introduced support for the new cross platform MAUI project types that are now available in VS2022. MAUI is expected to be a big player in future UI development on the MS platform (likely including VS itself), so we didn't see any way to avoid handling this under NCrunch.  Because MAUI projects are also themselves Xamarin based, it's quite likely we'll now be able to work on most modern Xamarin projects too.  We'd like to do further testing in this area before declaring Xamarin as having full support under NCrunch, but it's a good start!

Something we've noticed while testing with MAUI projects is that these project types seem to have a very large payload.  A basic MAUI project built from a template has around 300MB worth of platform assemblies in its build output directories.  Under NCrunch, we've managed to strip this down to about 100MB by not building platforms we can't execute for (iOS, macOS, etc), but please expect that you might need a bit of free disk space when running this through NCrunch's workspacing system.

Sometimes MAUI projects also seem to have highly elevated build times.  This is not due to NCrunch (it happens under VS too).  At some stage we may need to investigate this to see what is causing it.  Since this is still a new platform, it's probably safe to assume that MS are still optimising it.


MSpec v1.1.0 Support

The release of the latest version of MSpec broke our integration due to a very small internal change in MSpec.  NCrunch v4.14 brings up back up to date here and MSpec should be running fine again.


Future Stuff

As previously disclosed, we're currently sitting on over a year of development on two major feature areas that will form the basis of NCrunch V5.  While we work on these, we're continuing to include internal improvements and optimisations from this work in the minor v4 releases.  We're expecting V5 to be the largest release in NCrunch's history, so we're doing our best to get it right.


Check out the full list of changes and go grab v4.14!


Month List

Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download