comparação de desempenho de várias ordens de comandos

2

Eu tenho três programas diferentes escritos em três idiomas diferentes e estou tentando comparar seu desempenho em termos de tempo de execução e consumo de memória. O que estou procurando é algum comando que se pareça com algo como:

$ SOMETHING (python test.py)
$ SOMETHING (ghc -o test test.hs; ./test)
$ SOMETHING (gcc -o test test.c; ./test)

a razão para isso é que eu quero ter uma maneira Unix (y) unificada de olhar para os resultados de desempenho desses programas como se opor a usar as ferramentas de criação de perfil nessas diferentes linguagens. Eu também gostaria de saber quais são alguns outros critérios gerais e essenciais que os profissionais de software medem ao lado do tempo de execução e do consumo de memória para obter alguns dados úteis desses programas. Obrigado

    
por 7kemZmani 18.07.2016 / 17:20

1 resposta

2

Uma maneira simples seria usar o comando GNU time .

/usr/bin/time python test.py
/usr/bin/time /bin/sh -c 'ghc -o test test.hs; ./test'
/usr/bin/time /bin/sh -c 'gcc -o test test.c; ./test'

Para normalizar o início do shell, eu também adicionaria um /bin/sh -c ao comando python.

time tem muitas opções para formatar a saída e incluir memória, E / S e outros detalhes na saída. Veja man time para detalhes.

Há também um bash time embutido que pode ser usado como:

time python test.py
time { ghc -o test test.hs; ./test; }
time { gcc -o test test.c; ./test; }

Ele vai te dar os horários, mas eu não tenho certeza se tem opções para memória e E / S também.

    
por 18.07.2016 / 18:18