Der profiler-start
Befehl hat Optionen für die cpu
, mem
und cpu+mem
. Gibt es eine Möglichkeit, einen Befehl nach Ablauf der Zeit zu profilieren?
Der profiler-start
Befehl hat Optionen für die cpu
, mem
und cpu+mem
. Gibt es eine Möglichkeit, einen Befehl nach Ablauf der Zeit zu profilieren?
Antworten:
Ich bin mir nicht sicher, ob Sie dies mit profiler.el tun können, da es sich um einen Stichprobenprofiler handelt. Es wird nicht gemessen, wie lange die Ausführung einer Funktion dauert, sondern es wird regelmäßig überprüft, welche Funktion gerade ausgeführt wird, und es werden alle diese Beispiele addiert.
ELP oder der EmacsLispProfiler ist ein Instrumenting-Compiler. Um die Instrumentierung zu aktivieren, verwenden Sie die M-x elp-instrument-Funktion für eine oder mehrere Funktionen. Führen Sie nach dem Ausführen von Code, der die instrumentierten Funktionen M-x aufruft , elp-results aus . Dies zeigt einen Puffer an, der die Gesamtzahl der Anrufe und die verstrichene Zeit für jede instrumentierte Funktion anzeigt. Weitere Informationen finden Sie unter M-x find-libary elp .
Wenn Sie genau wissen, welche Funktion Sie profilieren möchten, kann auch die Benchmark-Bibliothek hilfreich sein.
Sie können
benchmark
damit bestimmen, wie lange ein Befehl dauert.
(benchmark 100 (command))
100 ist die Anzahl der Wiederholungen. Machen Sie sie groß genug, damit Ihre Ergebnisse aussagekräftig sind. Und vergessen Sie nicht, dass Sie es auch interaktiv aufrufen können.
(Benchmark REPETITIONS FORM)
Drucken Sie die Zeit aus, die für die Ausführung von REPETITIONS FORM benötigt wird.
Interaktiv wird REPETITIONS aus dem Präfix arg entnommen.
Sie können es auch für jede beliebige Form verwenden, nicht nur für einen einzelnen Befehl.
(benchmark 100 (form to (be evaluated))