Использование ЦП для каждого процесса в Python

Макросы выполняют подстановку текста. Это означает, что он просто заменяет все, что вы даете ему как a, b и c внутри определения. Вы можете сделать то же самое вручную, и он должен дать вам код, который он генерирует.

Примечания:

  • Макросы работают без какой-либо проверки синтаксиса, проверки типов или других проверок работоспособности, поэтому их обычно осуждают.
  • Фактическая работа этого кода зависит также от того, что вы ему кормите. Мой ответ не объясняет, как это должно работать именно по этой причине. Это зависит от того, что находится вне контроля этого макроса.
  • Этот код, вероятно, будет лучше закодирован как встроенная функция, которая обеспечивает проверку типов и, как правило, несколько ограничений, которые, в свою очередь, предоставляют гарантии.
  • Вероятно, в основном это не имеет значения, но этот макрос даже содержит ошибки, потому что он использует символ, который зарезервирован (двойное, последовательное подчеркивание) для компилятора и реализации. Я не уверен насчет точного термина, но он либо приводит к тому, что программа плохо сформирована, либо к неопределенному поведению, но «глючит» суммирует его довольно хорошо. Это еще одна вещь, которая делает этот код плохим.
14
задан UnkwnTech 9 November 2008 в 18:53
поделиться

2 ответа

>>> import os
>>> os.times()
(1.296875, 0.765625, 0.0, 0.0, 0.0)
>>> print os.times.__doc__
times() -> (utime, stime, cutime, cstime, elapsed_time)

Return a tuple of floating point numbers indicating process times.

От (2.5) руководство:

времена ()

Возврат с 5 кортежами из чисел с плавающей точкой, указывающих накопленный (процессор или другой) времена, в секундах. Объекты: пользовательское время, системное время, детское пользовательское время, детское системное время, и протекли реальное время начиная с фиксированной точки в прошлом в том порядке. Посмотрите времена страницы руководства Unix (2) или соответствующая документация API платформы Windows. Доступность: Macintosh, Unix, Windows.

26
ответ дан 1 December 2019 в 06:40
поделиться

resource модуль обеспечивает getrusage , который может дать Вам информацию, в которой Вы нуждаетесь, по крайней мере, для подобных Unix платформ.

Примечание, что использование ЦП как процент всегда измеряется по временному интервалу. По существу это - количество времени, занятое Вашей программой, делающей что-то разделенное ко времени интервала.

, Например, если Ваше приложение занимает 2 секунды процессорного времени за 5 вторых периодов, то оно, как могут говорить, использует 40% ЦП.

Примечание, что это вычисление, столь простое, как это кажется, может стать хитрым при использовании многопроцессорной системы. Если Ваше использование приложения, 7 секунд процессорного времени за 5 секунд стены показывают время в системе с двумя процессорами, Вы говорите, что это - использование 140% или 70% ЦП?

Обновление: Как упоминания gimel, эти os.times функция также предоставляет эту информацию платформенно независимым способом. Вышеупомянутые примечания вычисления все еще применяются, конечно.

6
ответ дан 1 December 2019 в 06:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: