Re[2]: dotTrace и compiled Regex
От: Sharov Россия  
Дата: 01.09.16 12:04
Оценка:
Здравствуйте, Anatoly Nikitin, Вы писали:

AN>Здравствуйте, Sharov,


AN>В Вашем случае, для замера времени выполнения конкретного метода можно пользоваться простым Stopwatch'ем, а не профайлером. Профайлер неизбежно вносит погрешность в измерения и его использование оправдано, например, если Вас интересует распределение времени выполнения по дочерним вызовам, либо если Вы хотите измерить время сразу для нескольких методов.


AN>Если всё же использовать dotTrace для сравнения времени выполнения одного метода, то для выбора режима профилирования нужно понимать следующее:

AN>- точность измерения времени выполнения метода в режиме Tracing уменьшается по мере увеличения общего количества вызовов в поддереве этого метода. Это связано с тем, что в режиме Tracing профайлер выполняет некоторые действия на каждый вызов метода, и при этом он лишь частично компенсирует эту погрешность.
AN>- абсолютная погрешность измерения времени одного вызова метода в режиме Sampling: 20 ms. Это связано со статистическим характером сэмплинга: dotTrace сэмплирует каждый поток с частотой 100 сэмплов/сек. Соответственно, относительная погрешность сэмплинга уменьшается по мере увеличения исследуемого времени выполнения.
AN>- режим Line-by-Line вносит наибольшую инструментальную погрешность в измерения.

AN>В итоге, если в поддереве исследуемого метода не происходит большого количества вызовов других методов (например, их меньше 1000), то можно пользоваться Tracing'ом. Если же вызовов много, то лучше увеличить количество итераций цикла и использовать Sampling.


Про инструментальную погрешность понятно, благодарю. Но я сравнивал время работы программы над файлом в цикле. И мне казалось, что Line-by-Line даст наиболее точный результат ибо использует инструментирование + соотв. регистры процессора.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.