Profiluj polecenie według czasu na ścianie

10

profiler-startKomenda posiada opcje cpu, memoraz cpu+mem. Czy istnieje sposób na profilowanie polecenia według upływu czasu?

Matthew Piziak
źródło
Powiązane: emacs.stackexchange.com/q/539/50
Malabarba

Odpowiedzi:

7

Nie jestem pewien, czy możesz to zrobić za pomocą profiler.el, ponieważ jest to profiler do próbkowania. W rzeczywistości nie mierzy czasu działania funkcji, okresowo sprawdza, czy funkcja jest aktualnie wykonywana, i sumuje wszystkie te próbki.

ELP lub EmacsLispProfiler to kompilator instrumentalny. Aby włączyć oprzyrządowanie, użyj funkcji M-x elp-instrument na jednej lub kilku funkcjach. Po uruchomieniu kodu, który wywołuje funkcje instrumentowane, uruchom M-x elp-results . Spowoduje to wyświetlenie bufora pokazującego całkowitą liczbę połączeń i czas, jaki upłynął dla każdej instrumentowanej funkcji. Sprawdź M-x find-libary Elp, aby uzyskać więcej informacji.

Jeśli dokładnie wiesz, jaką funkcję chcesz profilować, biblioteka testów porównawczych może być również przydatna.

zdeterminowany
źródło
5

Możesz użyć, benchmarkaby określić, jak długo trwa polecenie.

(benchmark 100 (command))

100 to liczba powtórzeń, spraw, aby były wystarczająco duże, aby wyniki były znaczące. I nie zapomnij, że możesz nazywać to także interaktywnie.

(testowy FORMULARZ POWTÓRZENIA)

Wydrukuj czas wykonania FORMULARZ REPETITIONS.
Interaktywnie REPETITIONS są pobierane z przedrostka arg.

Możesz go także użyć w dowolnej formie, a nie tylko w jednym poleceniu.

(benchmark 100 (form to (be evaluated))
Malabarba
źródło