我用PyQT4、Wing、QT和Python2.6.6在我的Mac上做了一个图形用户界面来设置和启动一个数值积分器。问题是,当我从GUI运行integrator时,它花费的时间比我从命令行粗略运行integrator的时间要长很多倍。
例如,1000年的集成在命令行上需要98秒,在GUI上需要大约570秒。
在GUI中,集成从线程运行,然后返回。它使用一个队列来与GUI通信。
有没有人知道瓶颈在哪里?我怀疑其他人可能正在经历类似的事情,只是规模较小。
t = threading.Thread(target=self.threadsafe_start_thread, args=(self.queue, self.selected))
t.start()发布于 2011-03-12 08:05:23
一般来说,在pyqt应用程序中使用python线程不是一个好主意。相反,请使用QThread。
python和QThreads都调用相同的底层机制,但它们不能很好地结合在一起。我不知道这是否能解决你的问题,但这可能是问题的一部分。
发布于 2011-03-12 12:04:58
你的线程代码主要是Python代码吗?如果是,那么您可能是全局解释器锁的受害者。
https://stackoverflow.com/questions/5279627
复制相似问题