Отчет о времени Linux - Как интерпретировать? - PullRequest
0 голосов
/ 20 марта 2012

Я пытаюсь заставить мой код работать быстрее и использую функциональность времени в Linux, и это то, что я получаю. Мне интересно, на какой номер мне смотреть, чтобы определить, насколько быстро он работает.

0.019u 0.001s 0:02.50 0.4%      0+0k 0+0io 2pf+0w

Кроме того, я новичок в этом, поэтому я был бы признателен, если бы кто-то мог объяснить мне, что означает каждое из чисел.

В моей программе мне нужно прочитать большой ввод строк и проанализировать их, и я храню их в векторе struct. Я позже получу доступ к этому вектору. Мне интересно, если это сделает мой код быстрее, если я сохраню вектор указателя на struct в отличие от вектора struct.

Буду признателен за любой вклад. Спасибо.

1 Ответ

0 голосов
/ 20 марта 2012

http://en.wikipedia.org/wiki/Time_(Unix)

«Пользовательское» время - это количество времени, которое ваша программа тратит на выполнение таких операций, как циклы и обработка внутри собственной программы.

«Система» - это время, которое затрачивается на выполнение системных операций, таких как чтение файлов из файловой системы, запуск процессов и т. Д. Вещи, которые ваша программа может не запрашивать, а выполняются системой для управления вашим инструментом.

«Реальный» - это комбинированное время от начала до конца, которое также может включать в себя моменты, когда он фактически не выполняет никакой работы и просто ожидает чего-то.

На самом деле вопрос в том, что делает ваша программа, определяет, какая информация об этом важна для вас. Если все, что делает ваша программа, это внутреннее сжатие чисел, то будет важно только время пользователя. Если он выполняет тонны обработки, вызова, чтения файлов, открытия процессов, то вам может потребоваться общее реальное время, необходимое для завершения работы.

Использование time для оценки вашей производительности, очевидно, является приблизительной оценкой производительности. Вы не можете знать, набрали ли некоторые функции какую-либо скорость. Для этого вам нужно посмотреть, как профилировать ваш код. Или добавьте свои собственные временные тесты, которые окружают функции, чтобы вы точно знали, сколько времени занимает выполнение определенного блока кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...