Time Profiler - Изчакайте стартирането на приложението

Когато стартирам приложението си от персонализирана 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)


"вижте кои методи отнемат толкова време"

Предполагате ли, че някои методи (или няколко) заемат много процесорно време сами по себе си или чрез извикване на други методи, които го правят? Ако е така, ще бъде лесно да се поправи, но е малко вероятно.

По-вероятно е времето да се изразходва за I/O от един или друг вид и трябва да разберете защо, а не къде.

Ако можете да го стартирате под дебъгер (да кажем, като използвате препоръката на @ChrisTruman), тогава всичко, което трябва да направите, е да го прекъснете с Ctrl-C, Ctrl-Break, Escape или каквато и да е клавишна комбинация, която го прекъсва. Правете това през времето, когато субективно е бавно.

Да предположим, че стартирането отнема три пъти повече време, отколкото смятате, че трябва. Ако това е така, това означава, че две трети от времето се изразходват за извършване на ненужни I/O или каквото и да е. Това означава, че всеки път, когато го прекъсвате, вероятността е 2/3 да го хванете докато прави това, което причинява забавянето. Затова го прекъсвайте няколко пъти и всеки път просто четете стека, разглеждайте променливите и т.н. Ще видите защо става бавно. Дори не търсете къде - това ще се появи от само себе си.

Това е основната идея зад тази техника.

person Mike Dunlavey    schedule 31.07.2013