Профилировщик Python и секунды процессора - PullRequest
4 голосов
/ 05 мая 2010

Эй, я полностью за этой темой.

Вчера я выполнял профилирование с использованием модуля профилировщика Python для некоторого сценария, над которым я работаю, и единица потраченного времени была «секунда процессора». Кто-нибудь может напомнить мне с определением этого?

Например, для какого-то профилирования я получил: 200.750 секунд процессора. Что это должно означать? В другом случае и за длительный процесс я получил: -347,977 секунды процессора, отрицательное число!

Можно ли как-то перевести это время в календарное время?

Приветствия

Ответы [ 2 ]

8 голосов
/ 05 мая 2010

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

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

1 голос
/ 05 мая 2010

Секунда ЦП - это одна секунда, в течение которой ваш процесс фактически запланирован на ЦП. Он может быть значительно меньше, чем истекшее реальное время в случае загруженной системы, и может быть выше в случае, если ваш процесс работает на нескольких ядрах (если счет идет за процесс, а не за поток). Это никогда не должно быть отрицательным, хотя ...

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