Como chegar execução tempo de milissegundos de um comando no zsh?

1

O time imprime apenas a segunda vez de execução de um comando.

Se houver uma solução como o poderoso comando magic timeit do IPython, ótimo.

    
por acgtyrant 04.07.2018 / 02:57

2 respostas

4

O time do zsh usa a variável TIMEFMT para controlar o formato. Por padrão , isso é %J %U user %S system %P cpu %*E total , que produz o seguinte.

$ time sleep 2
sleep 2 0.00s user 0.00s system 0% cpu 2.002 total

Isso faz produzir precisão de milissegundos (pelo menos para total ), então talvez seu sistema tenha um padrão diferente definido (distribuição de atraso?) ou tenha modificado TIMEFMT .

Dê uma olhada na página de manual para conhecer os possíveis formatos. Eu uso o seguinte em ~/.zshrc :

TIMEFMT=$'\n================\nCPU\t%P\nuser\t%*U\nsystem\t%*S\ntotal\t%*E'

que produz o seguinte.

$ time sleep 2 

================
CPU     0%
user    0.003
system  0.000
total   2.006
    
por 04.07.2018 / 03:09
1

O comando magic do ipython timeit irá, por padrão, imprimir um relatório de estatísticas sobre várias execuções da sua declaração. A palavra reservada do zsh time executará seu comando apenas uma vez.

Quando você se importa apenas com a medição do tempo de execução de comandos externos (e não de builtins e funções), você pode usar hyperfine . É um programa que executa repetidamente um comando para você e imprime algumas estatísticas.

    
por 12.07.2018 / 14:20

Tags