2016-05-09 5 views
7

Wie überprüfen Sie die Betriebszeit einer Phoenix/Elixir/Erlang-Anwendung? Wenn Sie: observer.start() ausführen und auf der Registerkarte System nachsehen, können Sie die Verfügbarkeit im Bereich Statistik sehen. Aber ich möchte in der Lage sein, diese Informationen programmatisch zu erfassen und in einen Bericht aufzunehmen. Ich habe herausgefunden, woher ich die meisten Daten bekommen kann, aber ich sehe nicht, woher die Zeit kommt.Wie überprüfen Sie die Betriebszeit einer Phoenix/Elixir/Erlang-Anwendung?

+0

In der Erlang-Shell, wenn Sie eine aktuelle Version von Erlang/OTP, können Sie einfach "uptime()" eingeben. – RichardC

Antwort

11

können Sie verwenden entweder statistics(runtime):

Informationen Returns über Laufzeit in Millisekunden.

Dies ist die Summe der Laufzeit für alle Threads im Erlang Runtime System und kann daher größer sein als die Wanduhrzeit.

Oder statistics(wall_clock):

Liefert Informationen über Wanduhr. wall_clock kann in der selbe Weise wie Laufzeit verwendet werden, außer dass Echtzeit zur Laufzeit oder CPU-Zeit als gemessen wird.

In beiden Fällen müssen Sie sie am Anfang Ihres Programms aufrufen, um ihre Timer zurückzusetzen. Wenn Sie übergeben drucken möchten, die Zeit gerade tun:

{_, Time1} = statistics(runtime). 

Oder

{_, Time2} = statistics(wall_clock). 

Dementsprechend und dann werden Sie die Zeit in Time1 oder Time2 haben. Weitere Informationen finden Sie aktuelle erlang:statistics/1

Hinweis: Wenn Sie die Gesamtzeit abgelaufen wollen, da die Erlang VM gestartet Sie das erste Element aus dem Tupel nehmen kann: {Total_Time, Time_Since_Last_Call} = statistics(wall_clock).

+5

Erstens ist das Argument 'runtime' für diese Frage nicht nützlich, da es kumulativ über die Anzahl der Scheduler ist und, wie die Manpage angibt, kann es größer als die Wanduhrzeit sein. Verwenden Sie für diese Frage 'wall_clock'. Zweitens müssen Sie das nicht wirklich zu Beginn Ihres Programms aufrufen. Die erste Zahl des zurückgegebenen Tupels ist die Gesamtlaufzeit, unabhängig davon, wann Sie sie aufrufen. Die zweite Nummer ist die Zeit seit dem letzten Aufruf von 'statistics/1'. Verwenden Sie für diese Frage einfach die erste Nummer. –

Verwandte Themen