我有一项耗费资源的任务,我想监视该进程的CPU使用率。我需要cpu百分比以高且constant的速率刷新,这意味着仅在[[inside的各个点添加print(psutil.cpu_percent(interval=0))
就可以了。我尝试添加一个带有定时循环的并行进程,该进程可测量主进程的资源使用情况并进行打印。我试图将主进程的PID传递给子进程,并使用它来获取主进程的用法,但似乎不起作用。这是我想出的:
system_monitor(process_pid):
while True:
# Timer (waits for the right time to start the loop)
[...]
# Print CPU usage
print(psutil.Process(process_pid).cpu_percent(interval=0))
main():
process_pid = os.getpid()
parallel_process = Process(target=system_monitor, args=(process_pid,))
# Set as daemon so it stops when main process stops
parallel_process.daemon = True
parallel_process.start()
# Resource demanding task
[...]
if __name__ == "__main__":
main()
代码仅输出0.0
,好像它不记得函数的最后一次调用一样,并且每次都重新启动计数。我也尝试了相同的代码,但使用了RAM(psutil.Process(process_pid).memory_info().rss
),效果很好。
我有一项耗费资源的任务,我想监视该进程的CPU使用率。我需要cpu百分比以较高且恒定的速率刷新,这意味着只需添加print(psutil.cpu_percent(...