Почему моя программа на C ++ использует больше системного времени, чем времени выполнения?

У меня есть программа, которая читает длинный список слов из текстового файла с перенаправлением командной строки. Нет файловых потоков.

Это берет данные в использовании getline(cin, string) и читает его в вектор. Моя программа затем обрабатывает данные. Он также использует динамическую память (не уверен, что этот факт имеет значение).

Почему я получаю эту ошибку:

Warning: Your program used more system time (0.001 sec) than user time (0.000 sec).
This may be due to excessive I/O, overly frequent time measurement
(via getrusage for example), or unnecessary system calls.

0

Решение

Ваш код читает и пишет файлы, что приводит к open(), read(), а также write() системные звонки среди других. «Пользовательское» и «системное» время — это процессорное время, затрачиваемое в пространстве пользователя и системе / пространстве ядра соответственно. Ядро также может использовать несколько процессоров, так что наличие «большего времени процессора», чем «реального времени», не является чем-то странным.

Понятия не имею, какой инструмент профилирования вы используете, чтобы сказать вам об этом, поскольку Google ничего не придумала, но этот инструмент неправильный. Здесь нет проблем.

1

Другие решения

Других решений пока нет …