Ich möchte messen, wie lange es dauert, bis einige Software gestartet wird.
Ich kenne den Befehl, time
aber im Fall von Firefox (iceweasel für mich auf Debian) wird dieser Befehl nur gedruckt, wenn ich Firefox öffnen lasse. Wenn ich starte:
$ time iceweasel www.google.com
Ich habe erst eine Startzeit, nachdem ich Firefox geschlossen habe, und diese Zeit zeigt nur an, wie lange ich Firefox geöffnet gelassen habe. Zum Beispiel:
real 0m50.565s
user 0m4.276s
sys 0m0.248s
Wie kann ich genau wissen, wie viel Firefox zum Starten benötigt wird?
Antworten:
Das ist hacky und nicht beschreibbar.
Firefox kann Javascript über die Befehlszeile wie folgt ausführen:
Dadurch wird Firefox geöffnet und Javascript ausgeführt, das ein Meldungsfeld mit der aktuellen Epochenzeit in Millisekunden öffnet.
Sie können die Anzahl der Millisekunden, die in der Epochenzeit verstrichen sind, an Ihrer Befehlszeile mit abrufen
Um Ihre Frage zu beantworten, laufen Sie
Subtrahieren Sie dann die Nummer in Ihrem Terminal von der Nummer in Firefox. Dies gibt Ihnen die Anzahl der Millisekunden an, die Firefox zum Öffnen und Anzeigen von grundlegendem Javascript benötigt hat.
Quellen:
quelle
Sie können ein Tool verwenden, mit dem die mit der PID verknüpfte Fenster-ID abgerufen werden kann, und warten, bis dieses Fenster erstellt wurde. Die Prozess-ID des zuvor gestarteten Programms ist in
$!
Variablen verfügbar .Als Beispiel: Mit
wmctrl
one können Sie eine Liste aller Fenster abrufen und prüfen, ob eines von ihnen mit der angegebenen PID gestartet wurde:Die Fenster-ID befindet sich in der ersten Spalte und die Prozess-ID in der dritten Spalte. Daher müssen wir sie weiterleiten,
awk
um zu überprüfen, ob der angegebenen Prozess-ID ein Fenster zugeordnet ist.Jetzt müssen wir es in eine Schleife setzen und die Zeit messen, bis der obige Befehl erfolgreich endet:
Also starten wir Firefox und starten sofort eine Schleife, die im Körper nichts tut (
:
) und endet, wenn einawk
Wert ungleich Null zurückgegeben wird.quelle
wait
eingebauten Bash.nc -l 64738 & firefox http://127.0.0.1:64738 & wait <...yet to be solved that only the nc should be waited for...> killall firefox <..yet to be solved to not kill your girlfriends browser>
quelle
AFAIK die Startzeit in Millisekunden finden Sie hier:
about: Telemetrie -> Einfache Messungen -> firstPaint
quelle
Sie können die gemessene Startzeit aus der Konfiguration ablesen (about: config):
browser.slowStartup.averageTime
quelle