Для измерения использования ЦП вам необходимо сравнить использование в течение двух заданных периодов времени; вы не можете получить точку измерения из прошлого (за исключением случаев, когда вы ее сохраняете, как предлагалось @ajsp).
Например:
import psutil
import time
def calculate(t1, t2):
# from psutil.cpu_percent()
# see: https://github.com/giampaolo/psutil/blob/master/psutil/__init__.py
t1_all = sum(t1)
t1_busy = t1_all - t1.idle
t2_all = sum(t2)
t2_busy = t2_all - t2.idle
if t2_busy <= t1_busy:
return 0.0
busy_delta = t2_busy - t1_busy
all_delta = t2_all - t1_all
busy_perc = (busy_delta/all_delta) * 100
return round(busy_perc, 1)
cpu_time_a = (time.time(), psutil.cpu_times())
# your code taking time
cpu_time_b = (time.time(), psutil.cpu_times())
print 'CPU used in %d seconds: %s' % (
cpu_time_b[0] - cpu_time_a[0],
calculate(cpu_time_a[1], cpu_time_b[1])
)
Или вы могли бы использовать cpu_percent(interval=600)
; и если вы не хотите, чтобы он блокировал другой код в вашем скрипте, вы можете сделать это в отдельном thread.
Но, как сказано ранее, в обоих случаях это не будет возвращаться во времени; просто измерьте время процессора с этого момента до interval
.
Если вам просто нужно следить за использование процессора и не хотите изобретать велосипед, вы можете использовать:
Эти решения помогут вам сохранить показатели вашей системы для обработки.
Не думайте, что это будет возможно, ИМО. Вы можете записать его в течение десяти минут, хотя в цикле с таймером, а затем построить его. – ajsp