Наш инструмент генерирует журналы производительности в диагностическом режиме, однако мы отслеживаем производительность по времени выполнения кода ( Секундомер + миллисекунды ).
Очевидно, что это совсем ненадежно, ЦП тестовой системы может использоваться каким-то случайным процессом, результаты будут совершенно другими, если вы настроите инструмент для запуска 10 потоков, а не 2 и т. Д.
Мой вопрос:
Что? s правильный способ узнать правильное время процессора для фрагмента кода ( не для всего процесса )?
Что я имею в виду под CPU Time:
В основном, сколько тактов затратил CPU. Я предполагаю, что это всегда будет одинаково для одного и того же фрагмента кода на одном компьютере и не будет зависеть от других процессов. Здесь могут быть некоторые фундаментальные вещи, которых мне здесь не хватает, в таком случае, пожалуйста, просветите меня в комментариях или ответах.
PS Использование профилировщика невозможно в нашей настройке
Другое обновление,
Почему Я не собираюсь использовать профилировщик
, потому что нам нужно тестировать код в разных средах с разными данными, где у нас нет профилировщика, IDE или чего-то подобного. Следовательно, сам код должен с этим справиться. Крайним вариантом может быть использование DLL профилировщика, но я не Не думаю, что эта задача требует такого сложного решения ( при условии, что не существует бесплатной и простой в реализации библиотеки профилирования ).