Duvido que meu entendimento da saída da execução do time
comando GNU esteja correto. Agora estou me perguntando o que a porcentagem da CPU realmente indica.
No macOS, instalei o time
utilitário GNU gtime
usando homebrew e executei um comando muito simples para verificar sua função:
/usr/local/bin/gtime -f '\ntime: system %S user %U elapsed %e CPU %P \nstat: %x' echo hi
hi
time: system 0.00 user 0.00 elapsed 0.00 CPU 100%
stat: 0
executando um comando mais simples usando o mesmo utilitário com menos sinalizadores:
/usr/local/bin/gtime echo hi
hi
0.00user 0.00system 0:00.00elapsed 75%CPU (0avgtext+0avgdata 676maxresident)k
0inputs+0outputs (1major+420minor)pagefaults 0swaps
As páginas do manual afirmam
%S tempo do sistema (kernel) em segundos
%P porcentagem da CPU que este trabalho obteve
%U tempo do usuário em segundos
Isso significa que o comando foi ineficiente, usando 100% da CPU, ou significa que ele é muito eficiente, ou nenhum dos dois.
Eu executei alguns outros scripts de shell muito mais complexos usando gtime
e eles mostram uma variedade de CPU 5%
– CPU 9%
o que me levou a fazer esta pergunta.