Можно ли профилировать часть метода с помощью Eqatec Profiler через его API? - PullRequest
0 голосов
/ 10 марта 2012

Я использую профилировщик Equatec для диагностики медленного процесса моего приложения.Я выяснил, какой метод медленный, но я хочу знать, какая именно часть метода медленная.Помимо разбиения метода на несколько методов, существует ли способ через Eqatec Profiler API для маркировки отдельных разделов метода, которые должны быть профилированы отдельно от всего метода?

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Equatec - хороший профилировщик, но по моему опыту, вот что происходит в приложении .net большого размера.

Вы можете найти рутину, которая активна в хорошем проценте случаев, например, 20%, и вы можете даже найти определенную «горячую» линию внутри нее, но вы можете посмотреть на нее и не знать, что с этим делать. потому что, насколько вы можете судить, это необходимо.

В то же время в коде может быть что-то большее, чем та, которая не очень хорошо проявляется в профилировщике, потому что она не ограничена одной подпрограммой.

Если я могу привести только один пример, я видел приложение, которое тратит примерно 50% своего времени запуска на глубину 20-30 уровней в стеке вызовов, получая строки из ресурсов только для того, чтобы оно могло отображать их пользователю, чтобы позволить они знают, что так долго. Если бы он нашел другой способ сделать это, он запустился бы в два раза быстрее! Профилировщик ANTS (еще один хороший) не дал понятия о том, что происходило.

Как я нашел это? Старый метод, аналогично , здесь он делается , и здесь объяснено .

На следующем графике показано, что если вы вручную производите выборку из стека N раз, приостанавливая работу программы, и на двух из этих выборок вы видите, что он выполняет что-то, что можно заменить чем-то намного более быстрым, количество время, которое вы можете сэкономить, и соответствующий коэффициент ускорения.

Например, красная кривая (2/5) означает, что если вы берете пять стековых сэмплов и видите, что вы можете улучшить на двух из них, вы не знаете точно, сколько вы сэкономите. Однако наиболее вероятное значение составляет 2/5 (40%, ускорение 67%), среднее значение составляет 3/7 (43%, ускорение 75%), и оно будет где-то в диапазоне примерно между 10% (ускорение 11% ) и 70% (ускорение 3,33х). Это на тот случай, если вы думаете, что не можете доверять небольшому количеству образцов. Неплохая игра Если вы хотите больше уверенности, возьмите больше образцов.

Beta distribution of cost for seeing something on S samples out of N total samples.

(Участок Бета-распределение X ~ Be( number of hits + 1, number of misses + 1 ) и Speedup = 1 / (1-X).)

0 голосов
/ 19 марта 2012

Начиная с текущей версии 3.8.14: Нет, это невозможно.Это было бы замечательно, но это не входит в план действий EQATEC.

...