Estou time
usando alguns dos meus comandos. Agora, para calcular a média das medidas, eu gostaria de executar e cronometrar meus comandos um número especificado de vezes e obter os resultados com uma média calculada e um desvio padrão. O resultado seria como:
avgtime -n 100 my_command
real 0m5.388s stdev 0m0.068s
user 0m5.380s stdev 0m0.067s
sys 0m0.004s stdev 0m0.000s
Existe uma ferramenta UNIX para isso? O GNU / Linux tem um?
performance
time
benchmark
time-utility
Didier Trosset
fonte
fonte
os.system()
, causa a sobrecarga de chamar / criar um shell com cada comando. Provavelmente é melhor usar subprocess.call ()Não é exatamente uma ferramenta UNIX ou GNU / Linux, mas você pode usar confortavelmente o ambiente de software R para computação estatística . (Não consigo encontrar nada mais específico para sua tarefa .)
Editar Como poderia eu duvido, há, claro, é um pacote de referência para
R
:rbenchmark
. Aparentemente, envolve osystem.time()
que você também pode usar diretamente. Ou dê uma olhada nisso, um simples par de funções de cronômetro. Consulte também "Executando um comando do sistema" @Rosetta Code (ou não, ésystem("command")
).Edit2 Acabei de ver esta pergunta, "Medindo o tempo dentro de um script" na coluna "Relacionada" à direita, isso também poderia ser usado, ou seja, dedique tempo, faça loop for-time (
N
vezes), dedique tempo novamente, calcule o intervalo de tempo, divida porN
. (Ainda mais fácil, tentetime ( for-loop )
, analise sua saída, divida porN
).fonte
Você pode usar
R
para calcular rapidamente a média, desvio padrão e outros valores interessantes.Por exemplo, você pode usar o tempo GNU para gravar várias medidas de tempo de execução em um arquivo CSV:
Então você pode gerar os valores com R assim:
Eu criei um pequeno script de benchmark que também faz algumas impressões bonitas da saída R, por exemplo:
fonte
Opção 1 - sqlite :
crie uma tabela simples com colunas de comando e tempo e visualize com cálculos de agregação adequados . Após o tempo, adicione uma linha à tabela.
Vantagens: mais simples de definir uma tabela em comparação com a solução 2.
Desvantagens: você precisa (precisa?) De se preocupar com a retenção de dados.
Opção 2 - rrdtool :
Definir o arquivo de base de dados rrd, definição de dados e funções de agregação. Após o tempo, alimente o banco de dados com
rrdtool update ...
.Vantagens: você pode facilmente gerar gráficos com
rrdtool graph ...
. Nenhum problema de retenção de dados (banco de dados round robin).Desvantagens: é um pouco mais difícil definir o banco de dados rrd em comparação com a tabela / visualização SQL simples
fonte
Hyperfine é outra opção.
Uso da amostra:
Veja a pergunta relacionada .
fonte