Профилировщик времени — дождитесь запуска приложения

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


person JeffN    schedule 30.07.2013    source источник
comment
Этот подход может помочь вам: stackoverflow.com/questions/8725625/simulate-launch-options Вы можете отредактировать схему, чтобы дождаться запуска приложения перед присоединением отладчика к процессу.   -  person Chris Truman    schedule 30.07.2013


Ответы (1)


"посмотрите, какие методы занимают так много времени"

Как вы думаете, какой-то метод (или несколько) поглощают много процессорного времени сами по себе или вызывают другие методы, которые это делают? Если это так, это будет легко исправить, но это маловероятно.

Скорее всего, время тратится на ввод-вывод того или иного рода, и вам нужно выяснить почему, а не где.

Если вы можете запустить его под отладчиком (скажем, используя рекомендацию @ChrisTruman), то все, что вам нужно сделать, это прервать его с помощью Ctrl-C, Ctrl-Break, Escape или любой комбинации клавиш, которая прерывает его. Делайте это в то время, когда, субъективно, он медленный.

Предположим, запуск занимает в три раза больше времени, чем вы думаете. Если это так, это означает, что две трети времени тратится на ненужный ввод-вывод или что-то еще. Это означает, что каждый раз, когда вы его прерываете, с вероятностью 2/3 вы поймаете его в процессе выполнения того, что вызывает замедление. Поэтому прерывайте его несколько раз и каждый раз просто читайте стек, просматривайте переменные и т. д. Вы поймете, почему он работает медленно. Даже не ищите где — это появится само собой.

Это основная идея этого метода.

person Mike Dunlavey    schedule 31.07.2013