I have a feeling that it may be impossible to have an optimal experience with NCrunch on a solution of this size, without selectively disabling large parts of it or making changes to your solution structure. I hope that NCrunch will be able to better support solutions of this size/structure in future as the tool matures, but for the time being I may be able to suggest a few things to help take the edge off the resource hogging:
- Assuming that your generated code is housed within its own project(s), consider removing the projects containing generated code from the solution itself and referencing this code using Assembly References instead of Project References. This will massively reduce the load placed on your IDE and tooling by the generated code, and NCrunch will simply treat it as referenced material rather than part of the solution.
- Consider suppressing code coverage and instrumentation for very large classes within your solution by using
NCrunch's coverage suppression syntax. This will reduce the instrumentation overhead.
- As you've already done - turning off 'Instrument Output Assembly' for large projects will make a big difference to build times and performance in general
- If you have large non-critical projects included in your solution, try switching them off with the 'Ignore this project completely' configuration option
Cheers,
Remco