我已经实现了kalman过滤器。我想知道我的脚本消耗了多少CPU能量。我已经检查了Stackoverflow上的其他帖子,然后我们下载了psutil库。现在,我不知道在哪里发表声明以获得正确的答案。这是我的代码:
if __name__ == "__main__":
#kalman code
pid = os.getpid()
py = psutil.Process(pid)
current_process = psutil.Process();
memoryUse = py.memory_info()[0]/2.**30 # memory use in GB...I think
print('memory use:', memoryUse)
print(current_process.cpu_percent())
print(psutil.virtual_memory()) # physical memory usage
请告知我是否朝着正确的方向前进。 以上代码生成以下结果。
('memory use:', 0.1001129150390625)
0.0
svmem(total=6123679744, available=4229349376, percent=30.9, used=1334358016, free=3152703488, active=1790803968, inactive=956125184, buffers=82894848, cached=1553723392, shared=289931264, slab=132927488)
编辑:目标:在运行此脚本时查找CPU消耗的能量
答案 0 :(得分:0)
我不确定您是否正在尝试查找执行#kalman code
期间的峰值CPU使用率,或者平均值,总数或其他内容?
但是,在cpu_percent()
完成后,您无法通过cpu_percent()
获取任何内容。您只是测量调用psutils
的CPU使用情况。
其中一些,您可以致电cpu_times()
。这将告诉你花了多少秒来做各种事情,包括总共"用户CPU时间"和"系统CPU时间"。文档准确地指出了您在每个平台上获得的值以及它们的含义。
事实上,如果这就是你想要的(包括只需要这两个值),你甚至不需要time python myscript.py
,你可以在标准库中使用os.times()
。< / p>
或者,您只需使用python myscript.py
代替cpu_percent
,即可在程序外部使用time
命令。
对于其他人,您需要在代码运行时调用multiprocessing
。一个简单的解决方案是使用concurrent.futures
或cpu_percent
运行后台流程,只需在主流程上调用cpu_times()
即可。为了获得有用的东西,子进程可能需要定期调用它,聚合结果(例如,找到最大值),直到它被告知停止,此时它可以返回聚合。
因为这不是一件容易写的事情,并且在不知道你对多处理有多熟悉的情况下肯定不容易解释,而且npm install vue-google-autocomplete --save
实际上你想要的机会很大,我赢了&除非被问到,否则请详细说明。