Como cronometrar a execução do bloco de código no modo org?

Oct 14 2020

Existe uma maneira fácil de cronometrar quanto tempo leva para executar blocos de código-fonte no modo org (talvez com argumentos de cabeçalho ou semelhante), em caso afirmativo, como? Ou devo implementá-lo no próprio código?

Estou usando o python3 btw.

Respostas

1 gregoryg Oct 21 2020 at 22:25

Isso pode ser tratado informando o código que trata da execução do bloco de código-fonte no Modo Org. A função em questão é org-babel-execute-src-block- executa um gancho após a execução, mas não antes, portanto, o recurso de aconselhamento é necessário - e provavelmente preferido para este uso.


(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)

Você receberá agora uma mensagem com o tempo decorrido para a execução do bloco de código impresso no buffer * Mensagens *.

Para remover o conselho, execute

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