Это так часто ...
Прежде всего, время «Я» практически бесполезно в любом реальном программном обеспечении.
Все, что он делает, это заставляет вас смотреть на это и идти «гак!».
Если бы вы случайно заморозили его в определенный момент времени, вы бы увидели стек вызовов на несколько уровней в глубину, и на вершине стека это будет либо
- заблокирован во время ввода-вывода, в спящем режиме или в другом некомпьютерном состоянии, или
- запуск счетчика программы через несколько слоев библиотеки, которые находятся далеко от вашего кода.
Редко можно найти счетчик программы в коде, который вы можете контролировать.
Поэтому, даже если вы нашли в своем коде более нескольких процентов собственного времени, исправление этого не может сэкономить больше, чем это.
С другой стороны как насчет других строк кода в стеке?
Если вы заморозили его 10 раз, и в 5 из них в стеке была определенная строка кода, вы знаете, что эта строка, если бы вы могли избежать ее выполнения, сэкономит вам примерно 50% .
Я не ищу "медленные функции" или "горячие точки".
Техника, которую я использую, это это , и есть гораздо больше причин, почему .