Как замерить производительность кода прямо в коде?
Stopwatch не подойдет.
Нужно мерить именно процессорные такты (CPU-sampling или что-то вроде того). In code.
Зачем?Я пишу генетический алгоритм, подбирающий оптимальные параметры для некого сложного метода. Скорость работы этого сложного метода сильно зависит от комбинаций параметров. По этому скорость — один из критериев, по которому фитнесс-функция отбирает лучших кандидатов.
Но алгоритм будет работать около недели на рабочей машине, в фоне, в различных условиях. Процессор то свободен, то занят, с диском тоже самое, по этому замеры времени (via Stopwatch) в разных условиях будут просто несопоставимы.
Необходима какая-то метрика эффективного времени, потраченного приложением. Или что-нибудь типа CPU-sampling из VS Perfomance Profiler'а. Но только прямо в коде. Как Stopwatch.