【发布时间】:2020-05-12 22:20:14
【问题描述】:
我正在测试我为一些计算机检查而制作的“简单”python 程序。 我正在使用 wmi 模块来检索信息。但是,用于计算正在运行的进程的简单计数线程大约需要 12 到 13 秒。运行进程数在300左右
我想知道我是否遗漏了什么,因为我有点惊讶这个运行速度有多慢。
- 操作系统:Windows 10 企业版
- Python:3.8.2 32 位
- wmi:1.5.1
- wxpython: 4.1.0
当按下按钮时,会启动多个线程,但其中大多数会立即返回数据,但这些不会循环,例如进程列表。
启动我使用的线程:
newObject = countProcess()
newObject.start()
类(线程)看起来像:
class countProcess(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
my_object = dict(status='Running', result='')
wx.CallAfter(pub.sendMessage, 'testListener', message=2,arg2=my_object)
pythoncom.CoInitialize()
d = wmi.WMI(find_classes=False)
count = 0
for process in d.Win32_Process():
count +=1
my_object = dict(status='idle', result=count)
wx.CallAfter(pub.sendMessage, 'testListener', message=2,arg2=my_object)
#print (count)
del d
是我做错了什么,还是循环通过 wmi 进程太慢了,我必须接受这一点?
提前致谢!
【问题讨论】:
标签: python python-3.x wxpython wmi