Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个多线程(通过 pyqt)应用程序,它绘制实时数据(数据在第二个线程中处理并传递给 gui 线程以通过 pyqt 信号进行绘图)。如果我将鼠标放在应用程序上,它会继续全速运行(通过调用之间的时间差来衡量app.processEvents())。一旦我开始移动鼠标,更新速度就会变慢,当我停止移动鼠标时会再次增加。
app.processEvents()
有谁知道我如何解决这个/调试问题?
代码非常冗长和复杂,所以我不想在这里发布。谢谢!
场景中可能有项目接受自己的鼠标输入,但如果不看代码就很难说。尤其要警惕可点击的复杂绘图线——计算鼠标光标与如此复杂形状的交点非常昂贵。
解决性能问题的最佳(有些人只会说)方法是分析您的应用程序:在python -m cProfile -s cumulative your_script.py不移动鼠标的情况下运行一次,然后在移动鼠标时再次运行(确保花费大量时间移动鼠标),然后将输出与查看口译员将所有时间花在哪里。
python -m cProfile -s cumulative your_script.py