Medir o tempo de execução de um processo no Windows e no Linux

1

Estou escrevendo um programa que executa certas otimizações em um arquivo executável e estou procurando uma maneira de medir o tempo que o executável levou para ser executado.

Eu tenho usado um script que mede a hora de início e a hora de término, mas isso não leva em conta que o processo pode não estar sendo executado o tempo todo (devido à alocação de recursos do sistema operacional).

O comando "Medir-Comando" do PowerShell fornecerá uma resposta mais precisa? E o 'Time' fará o mesmo no Linux?

Se não, como devo proceder assim? (Uma solução de linha de comando é preferível).

    
por Ysch 25.08.2013 / 13:23

2 respostas

0

Eu não posso falar sobre o comando do Windows, mas sim, o tempo * nix lhe dará uma resposta mais precisa:

$ time du -sch /usr/local/
147M  /usr/local/
147M  total

real    0m2.977s
user    0m0.008s
sys     0m0.076s

De acordo com man time , ele pode exibir (entre muitos outras coisas):

    E      Elapsed real (wall clock) time used by
           the process, in
           [hours:]minutes:seconds.
    P      Percentage of the CPU that this job
           got.  This is just user + system times
           divided by the total running time.  It
           also prints a percentage sign.
    S      Total number of CPU-seconds used by the
           system on behalf of the process (in
           kernel mode), in seconds.
    U      Total number of CPU-seconds that the
           process used directly (in user mode),
           in seconds.
    e      Elapsed real (wall clock) time used by
           the process, in seconds.
    
por 25.08.2013 / 16:53
0

No PowerShell, você pode usar Get-Process:

Get-Process | select starttime
    
por 26.08.2013 / 18:00