Profil d'une commande par l'heure du mur

10

La profiler-startcommande a des options pour cpu, memet cpu+mem. Existe-t-il un moyen de profiler une commande en fonction du temps écoulé?

Matthew Piziak
la source

Réponses:

7

Je ne sais pas si vous pouvez le faire en utilisant profiler.el car il s'agit d'un profileur d'échantillonnage. Il ne s'agit pas réellement de mesurer le temps nécessaire à l'exécution d'une fonction, mais de vérifier périodiquement quelle fonction est actuellement en cours d'exécution et d'additionner tous ces échantillons.

ELP ou EmacsLispProfiler est un compilateur d'instrumentation. Pour activer l'instrumentation, utilisez M-x elp-instrument-function sur une ou plusieurs fonctions. Après avoir exécuté du code qui appelle les fonctions instrumentées, exécutez M-x elp-results . Cela affichera un tampon indiquant le nombre total d'appels et le temps écoulé pour chaque fonction instrumentée. Consultez M-x find-libary elp pour plus d'informations.

Si vous savez exactement quelle fonction vous souhaitez profiler, la bibliothèque de référence peut également être utile.

dgtized
la source
5

Vous pouvez utiliser benchmarkpour déterminer la durée d'une commande.

(benchmark 100 (command))

100 est le nombre de répétitions, rendez-le suffisamment grand pour que vos résultats soient significatifs. Et n'oubliez pas que vous pouvez également l'appeler de manière interactive.

(FORMULAIRE DE RÉPÉTITIONS DE RÉFÉRENCE)

Imprime le temps nécessaire à l'exécution des RÉPÉTITIONS de FORM.
De manière interactive, REPETITIONS est tiré du préfixe arg.

Vous pouvez également l'utiliser pour n'importe quelle forme arbitraire, pas seulement pour une seule commande.

(benchmark 100 (form to (be evaluated))
Malabarba
la source