Comment chronométrer l'exécution du bloc de code en mode org?

Oct 14 2020

Existe-t-il un moyen simple de chronométrer le temps qu'il faut pour exécuter des blocs de code source en mode org (peut-être avec des arguments d'en-tête ou similaire), si oui, comment? Ou dois-je l'implémenter dans le code lui-même?

J'utilise python3 btw.

Réponses

1 gregoryg Oct 21 2020 at 22:25

Cela peut être géré en informant le code qui gère l'exécution du bloc de code source en mode organisation. La fonction en question est org-babel-execute-src-block- elle exécute un hook après son exécution, mais pas avant, donc la fonction de conseil est requise - et probablement préférée pour cette utilisation.


(defun gjg/time-call (time-call &rest args)
  (message "Ohai %s" args)
  (let ((start-time (float-time)))
    (apply time-call args)
    (message "Function call took %f seconds" (- (float-time) start-time)))
  )

(advice-add 'org-babel-execute-src-block :around #'gjg/time-call)

Vous obtiendrez maintenant un message avec le temps écoulé pour l'exécution du bloc de code imprimé dans le tampon * Messages *.

Pour supprimer l'avis, exécutez

(advice-remove 'org-babel-execute-src-block #'gjg/time-call)