Hvordan måler man startup tid for en grafisk applikation
så dette vildt snedige program til Windows
http://blogs.howtogeek.com/mysticgeek/2008/10/30/benchmark-startup-time…
I forsøg på at svare på denne "umiddelbart" simple problemstilling.
Jeg vil gerne lave et lille script der med en given gtk+ Qt Java-swing/Swt applikation kan fortælle mig hvor lang tid der går fra en bruger starter en applikation til den er brugbar (widgets kan reagere på kliks)
jeg er hverken ude efter
time startprog <--- timer tiden der tager at spawne baggrunds process
eller
time ; /usr/share/lib/prog ; time <--- viser intet som helst brugbart
desuden leder jeg efter noget der er så applikations agonotisk som overhovedet muligt, så frem at det er apps der i sidste ende får Xorg til at vise en grafisk brugerflade.
Det jeg kan komme i tanke om er at lave noget filtrering på blktrace output
eller lignende app der kan give en ide om hvornår en app ikke bruger mere i/o
eller
måske kunne man overvåge kald til xlib per PID
eller
måske kunne man overvåge hvad memory pages/loadlibs /File descriptors
en application åbner og så time load af samme bagefter (dette virker dog som noget der er ekstremt knudret.)
Så har i kære folk nogle ideer eller endnu bedre kender i til kloge folk der har sådan en "graphical app start up timer" til Linux liggende så giv et pej.
http://blogs.howtogeek.com/mysticgeek/2008/10/30/benchmark-startup-time…
I forsøg på at svare på denne "umiddelbart" simple problemstilling.
Jeg vil gerne lave et lille script der med en given gtk+ Qt Java-swing/Swt applikation kan fortælle mig hvor lang tid der går fra en bruger starter en applikation til den er brugbar (widgets kan reagere på kliks)
jeg er hverken ude efter
time startprog <--- timer tiden der tager at spawne baggrunds process
eller
time ; /usr/share/lib/prog ; time <--- viser intet som helst brugbart
desuden leder jeg efter noget der er så applikations agonotisk som overhovedet muligt, så frem at det er apps der i sidste ende får Xorg til at vise en grafisk brugerflade.
Det jeg kan komme i tanke om er at lave noget filtrering på blktrace output
eller lignende app der kan give en ide om hvornår en app ikke bruger mere i/o
eller
måske kunne man overvåge kald til xlib per PID
eller
måske kunne man overvåge hvad memory pages/loadlibs /File descriptors
en application åbner og så time load af samme bagefter (dette virker dog som noget der er ekstremt knudret.)
Så har i kære folk nogle ideer eller endnu bedre kender i til kloge folk der har sådan en "graphical app start up timer" til Linux liggende så giv et pej.
Kommentarer3
Re: Hvordan måler man startup tid for en grafisk applikation
Men hvis jeg skulle lave et script som skulle måle tiden på et program, så ville jeg nok kikke på pid's og jeg vil nok også kikke på eventuelle under tråde som bliver started af programmet...
prøv at kikke på "ps aux | grep "... eventuellet kik på dette link http://www.unixmen.com/linux-tutorials/310-speed-up-your-linux-application-loading-time-with-preload
http://sourceforge.net/projects/preload/ Dette program skulle gøre det som du bad om :D
Håber det hjælper :D
Tak
PIDs og tråde er ikke nok ,, jeg kan ikke bare nøjes med at se på disse da de bliver spawnet langt før at programmet rent faktisk er klart, jeg kan brug PIDs til at følge de shared objects de loader og evt anden I/O de fortager sig .
Preload er en af 3-4 projektter omkring dette , de fleste Gogle SOC projekter der desværre ikke virker ret færdige og deres fokus er speedup (hvilket absolut er interrassant) , men deres måle værktøjer har der været skrevet for lidt om undtaget blktrace, g så igen ,, måske har jeg overset en artikel.
De timede openoffice på den mest hacky og rodede måde jeg længe har set.
Re: Hvordan måler man startup tid for en grafisk applikation
Måske skulle du kikke på noget med "gdb", altså køre en debugging på det pågældende program... men det er måske overkill...
Men jeg tror den meste rene måde at gør det på, er at køre den igennem en type debug, hvor den fanger programmet og det den bruger i hukommelsen...
Så som jeg antager preload gør....
Jeg er ked af det at jeg ikke kunne vær til mere hjælp :D