I am curious about ncrunch's enginehost. There are about 2700 tests in my project.
After all my tests finished and completed, I was watching task manager where the memory usage was 1,365 mbs.
I would hope that this memory would eventually be released since the task was done.
Remco NCrunch Developer
#10867
27 Jul 2017 22:47 UTC
NCrunch's enginehost contains almost all memory allocated by the engine. This is to try and keep as much of NCrunch away from devenv.exe as possible.
As such, the enginehost contains an extensive code model of your entire solution and of its tests. The largest area of memory consumption is usually the code coverage index, where all your code coverage data is stored.
Setting the engine host to run in an x86 process (through the 'Engine hosting strategy' configuration setting) will quite significantly reduce the memory footprint of the enginehost, as the coverage index is mostly made up of a large number of very small objects and x86 processes consume less memory for pointer based types.
Unfortunately reducing the amount of memory consumed by the code coverage index isn't feasible without massive performance degradation. Higher memory consumption in this situation seemed to be the lesser of two evils.
As such, the enginehost contains an extensive code model of your entire solution and of its tests. The largest area of memory consumption is usually the code coverage index, where all your code coverage data is stored.
Setting the engine host to run in an x86 process (through the 'Engine hosting strategy' configuration setting) will quite significantly reduce the memory footprint of the enginehost, as the coverage index is mostly made up of a large number of very small objects and x86 processes consume less memory for pointer based types.
Unfortunately reducing the amount of memory consumed by the code coverage index isn't feasible without massive performance degradation. Higher memory consumption in this situation seemed to be the lesser of two evils.
Post a reply
Log in to reply.