One thing I failed to mention in my post about making reflection perform better is how I optimised the rest of the code. It was always pretty obvious that the reflection side would start off as a bottleneck – but for the rest of the code, I’ve relied heavily on dotTrace. It’s from JetBrains, the same people who make ReSharper (without which I’d be considerably more frustrated with Visual Studio).
While there are certainly elements of dotTrace which I haven’t explored (and occasionally some results which have mystified me – such as a claim that the CPU spent 111 seconds in one particular method, when the whole trace was only 99 seconds long – I suspect some double-counting of recursion) it’s been really useful, and incredibly easy to get started with.
JetBrains gives MVPs free licences for both ReSharper and dotTrace, which obviously makes me predisposed towards warm, fuzzy feelings for them. Both of them are highly recommended though, and have saved me a lot of time.