0

我有一个多线程(通过 pyqt)应用程序,它绘制实时数据(数据在第二个线程中处理并传递给 gui 线程以通过 pyqt 信号进行绘图)。如果我将鼠标放在应用程序上,它会继续全速运行(通过调用之间的时间差来衡量app.processEvents())。一旦我开始移动鼠标,更新速度就会变慢,当我停止移动鼠标时会再次增加。

有谁知道我如何解决这个/调试问题?

代码非常冗长和复杂,所以我不想在这里发布。谢谢!

4

1 回答 1

2

场景中可能有项目接受自己的鼠标输入,但如果不看代码就很难说。尤其要警惕可点击的复杂绘图线——计算鼠标光标与如此复杂形状的交点非常昂贵。

解决性能问题的最佳(有些人只会说)方法是分析您的应用程序:在python -m cProfile -s cumulative your_script.py不移动鼠标的情况下运行一次,然后在移动鼠标时再次运行(确保花费大量时间移动鼠标),然后将输出与查看口译员将所有时间花在哪里。

于 2014-05-09T19:25:30.950 回答