Я видел, как это делается с помощью PostSharp AOP Framework, подключенного к счетчикам производительности Windows (System.Diagnostics.PerformanceCounter
). Один из их вводных фрагментов примера кода показывает, как это сделать:
http://www.sharpcrafters.com/solutions/performance
Это может быть хорошим вариантом, если вы хотите развернуть эти измерения в рабочей среде и измерить производительность в режиме реального времени (для диагностики работающей системы).
Если вы просто хотите найти узкие места в вашем коде и вам не нужно проводить диагностику в реальном времени, я предлагаю вам просто использовать профилировщик, например встроенный в VS, или Ants Profiler Крис уже предложил). Затем выполните отредактированную копию ваших производственных данных для своего кода, чтобы ваши измерения производительности соответствовали производственным.