простых шагов, как я бы профилировал конкретную функцию
Я использую метод случайная пауза , возможно, более известный как профилировщик бедняка (что мне нравилось, пока я не увидел, как они агрегируются).Вот другая ссылка .Вам не нужно указывать на какую конкретную функцию смотреть.Он автоматически находит то, что занимает больше всего времени, будь то эта функция или другая.
Дело в том, что по сравнению с «настоящими» профилировщиками некоторые могут сказать, что это грубо, утомительно и т. Д. Так зачемэто?
Потому что это эффективно .
Вы прибиваете свою проблему, вплоть до конкретных инструкций, и знаете, что решить, прежде чем даже начинаете ломать голову сквозь кучувещи, которые выходят из большинства профилировщиков - собственное время, количество вызовов, деревья вызовов, графики вызовов, «горячие пути», «время процессора», и т. д.и т. д. .
Вопрос любого профилировщика заключается не в том, насколько он «точен», а в том,
- Какое ускорение обычно достигается при его использовании в реальном времени?(не игрушечные) программы?
Разве это не то, что вас волнует?
Вот пример ускорения в 43 раза со случайной паузой.