Использование команды времени для бенчмаркинга - PullRequest
3 голосов
/ 26 августа 2011

Я пытаюсь использовать команду time в качестве простого решения для сравнения некоторых сценариев, которые выполняют большую часть обработки текста и выполняют ряд сетевых вызовов. Чтобы оценить, хорошо ли это подходит, я попытался сделать:

/usr/bin/time -f "\n%E elapsed,\n%U user,\n%S system, \n %P CPU, \n%M
max-mem footprint in KB, \n%t avg-mem footprint in KB, \n%K Average total
(data+stack+text) memory,\n%F major page faults, \n%I file system
inputs by the process, \n%O file system outputs by the process, \n%r
socket messages received, \n%s socket messages sent, \n%x status"  yum
install nmap

и получил:

1:35.15 elapsed,
3.17 user,
0.40 system,
 3% CPU,
0 max-mem footprint in KB,
0 avg-mem footprint in KB,
0 Average total (data+stack+text) memory,
127 major page faults,
0 file system inputs by the process, 
0 file system outputs by the process,
0 socket messages received,
0 socket messages sent,
0 status

что не совсем то, что я ожидал - особенно 0 значений. Даже когда я изменяю команду на ping google.com, сообщения сокета равны 0. Что происходит? Есть ли альтернатива?

[И я в замешательстве, если он останется здесь или будет опубликован в сообщении об ошибке сервера]

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Я думаю, что это не работает с Linux;Я предполагаю, что вы используете Linux, так как вы сказали "strace".Страница руководства гласит:

Bugs

Not all resources are measured by all versions of Unix,
so some of the values might be reported as zero. The present
selection was mostly inspired by the data provided by 4.2 or
4.3BSD.

Я попытался "wget" в системе OSX (то есть BSD-ish), чтобы проверить, сообщает ли он о статистике сокетов, и, по крайней мере, сокет работает:

0.00 user,
0.01 system, 
 1% CPU, 
0 max-mem footprint in KB, 
0 avg-mem footprint in KB, 
0 Average total (data+stack+text) memory,
0 major page faults, 
0 file system inputs by the process, 
0 file system outputs by the process, 
151 socket messages received, 
8 socket messages sent, 
0 status

Надеюсь, это поможет, Алекс.

0 голосов
/ 31 октября 2013

Не используйте time для сравнения. Некоторые поля команды time разбиты, как указано в [1]. Однако основные функции времени (реальное, пользовательское и процессорное время) остаются неизменными.

[1] Максимальный размер резидентного набора не имеет смысла

...