[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie misst man die Ausführungszeit von Programmen (war: Re: Slowfox)



Horst Felder - 29.06.17, 18:34:
> Oder meinst du vielleicht eine »gefühlte« Sekunde? :)
> 
> > Ja, das meinte ich. Vielleicht sind es auch 1,5 Sekunden.
> 
> Vielleicht auch 2? Dann würde meine Welt wieder stimmen... :)

Eher nicht… aber siehe unten:

> > Ich wüsste auch nicht, wie ich das zuverlässig messen könnte von
> > Auslösen des Befehls bis zum Erscheinen des Fensters.
> 
> Stimmt! Das ist nicht einfach! Ich verwende eine Stoppuhr. Aber bei
> Startzeiten von 1-2 Sek. ist die menschliche Reaktionsfähigkeit ein
> bedeutender Fehlerfaktor. Ich habe da Unterschiede von bis zu
> einer 15/100 Sek....
> 
> Im Netz bin ich hierauf gestoßen:
> https://unix.stackexchange.com/questions/182952/how-to-measure-firefoxs-star
> tup-time 
> 
> Zwei Möglichkeiten schienen interessant (alles Warmstart):
[…]
> 2. browser.slowStartup.averageTime (about:config)
> 
>    Ergebnis: 1530 (ms nehme ich an)

Nach einem Neustart des Systems heute, weil beim es beim Aufwachen aus dem 
Standby wieder mal abgekachelt ist, braucht der Firefox-Neustart gerade 
gefühlt mehr als doppelt so lang. Ich hab da gerade nur eine Idee zu: 
Vielleicht war irgendwo entweder noch ein Firefox-Fenster offen oder es lief 
zumindest noch ein Firefox-Prozess. Ich habe im Plasma-Desktop 
unterschiedliche Aktivitäten. Ich hab an sich geschaut, dass nirgendwo ein 
Firefox noch läuft… aber wer weiß, ich hatte es auch schon, dass kein Fenster 
mehr zu sehen war, und doch noch ein Prozess lief. Mal sehen, vielleicht 
probiere ich das morgen auch noch mal.

Auf jeden Fall habe ich hier jetzt gerade 3443.

> Kennt jemand eine bessere Art der Messung? 

Ich kenne da nix. Mir reicht da auch die gefühlte Dauer… und zwar reicht es 
mir, wenn die schnell genug ist. Ich benutze das Laptop ja.

Interessant ist die Ausgabe von vmstat -SM 1 während Firefox-Start – mit Swap 
mal rausgenommen, damit es besser hier in die Mail passt.

martin@merkaba:~> vmstat -SM 1
procs […]--memory---------- […] ---io---- -system-- ------cpu-----
 r  b […]free   buff  cache […]  bi    bo   in    cs us sy id wa st
[… etwa ab hier …]
 1  0 […] 420      2  11370 […]   0     0 2857  7996 24  5 71  0  0
 1  0 […] 344      2  11360 […]   4     0 2332  5263 26  2 72  0  0
 1  0 […] 241      2  11341 […]   0  3888 4313 10927 33  3 64  0  0
 1  0 […] 190      2  11342 […]   0     0 3179 11196 29  3 69  0  0
 2  0 […] 157      2  11350 […]   0     0 2602  8209 30  3 66  0  0
 2  0 […] 160      2  11353 […]   0   640 3682  9063 25  4 70  1  0
 0  0 […] 471      2  11349 […]  64 11176 5363 11866 32  5 62  2  0

(Das sind denke ich ein paar mehr Zeilen als es tatsächlich gedauert hat, bis 
das Fenster zu sehen war. Menschliche Reaktionszeit und so…)

Die Ausgabe könnte auf einen Engpass der CPU hindeuten, da das Laptop vier 
logische Kerne hat.

Whoa, und ja, das ist es:

martin@merkaba:~#130> pidstat | head -3; pidstat 1 | grep firefox
Linux 4.10.17-tp520-btrfstrim (merkaba)   29.06.2017  _x86_64_     (4 CPU)

21:24:06 […]   PID    %usr %system  %guest   %wait    %CPU   CPU  Command
21:24:15 […] 13597   72,00    8,00    0,00    2,00   80,00     3  firefox
21:24:15 […] 13600    2,00    1,00    0,00    1,00    3,00     2  firefox
21:24:16 […] 13597  100,00    8,00    0,00    1,00  100,00     1  firefox
21:24:17 […] 13597  100,00    5,00    0,00    0,00  100,00     3  firefox
21:24:18 […] 13597  100,00    3,00    0,00    0,00  100,00     1  firefox
21:24:19 […] 13597  100,00    5,00    0,00    0,00  100,00     1  firefox
21:24:20 […] 13597   83,00    7,00    0,00    1,00   90,00     1  firefox

(Das sind denke ich ein paar mehr Zeilen als es tatsächlich gedauert hat, bis 
das Fenster zu sehen war. Menschliche Reaktionszeit und so…)

Ich bin beindruckt: Ein Firefox-Thread (oder der Haupt-Prozess) plättet einen 
Kern der Sandybridge Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, den Linux dann 
vielleicht sogar noch auf 3,0 oder 3,2 GHz übertaktet (das habe ich nicht 
nachgeschaut), für volle 4 Sekunden!

Das sieht mir so aus, als ließe sich die Zeit reduzieren, wenn Firefox auch 
beim Start seine vielen Threads mal für was Sinnvolles nutzen würde, um 
mehrere Kerne gleichzeitig zu beschäftigen. Oder die Entwickler mal 
nachschauen, inwiefern wirklich so viel CPU-Leistung nötig ist, nur um einen 
Webbrowser zu starten. Kann natürlich sein, dass das was Firefox da macht, 
ohne größeren Aufwand nur single-threaded möglich ist.

Ich bin beeindruckt… ich hätte nicht erwartet, dass die Startzeit hier zu 
einem so großen Teil CPU-gebunden ist.

Adios,
-- 
Martin


Reply to: