我已经在我的Mac上使用PyQT4,Wing,QT和Python 2.6.6创建了一个GUI来设置和启动数值积分器。问题是,当我从GUI运行集成器时,它比我从命令行粗略运行集成器所花费的时间要长很多倍。
例如,1000年的集成在命令行上花了98秒,在GUI上花了大约570秒。
在GUI中,集成从线程运行然后返回。它使用一个队列与GUI进行通信。
有没有人对瓶颈在哪里有任何想法?我怀疑其他人可能只是在较小的范围内经历这样的事情。
t = threading.Thread(target=self.threadsafe_start_thread, args=(self.queue, self.selected))
t.start()
答案 0 :(得分:0)
通常,在pyqt应用程序中使用python线程并不是一个好主意。而是使用QThread。
python和QThreads都调用相同的底层机制,但它们并不能很好地协同工作。我不知道这是否能解决你的问题,但它可能是问题的一部分。
答案 1 :(得分:0)
你的线程代码主要是Python代码吗?如果是,那么您可能是Global Interpreter Lock的受害者。