Open PierreRaybaut opened 2 months ago
Here are the profiling stats:
We can see that some intermediate level methods (in PythonQwt
) are called ~2x more when using Qt6. When tracking back the call stack, it seems that this is due to an internal change in Qt which has the effect of calling internal methods related to widget resizing and drawing twice more than before. In other words, there is not much we can do in PlotPyStack (in PythonQwt
, to be precise) apart from avoiding unnecessary widget refresh calls, but this kind of optimization has already been done in PythonQwt
.
profiling_stats-PyQt5.txt
profiling_stats-PyQt6.txt
profiling_stats-PySide6.txt
While the whole stack (
PythonQwt
,guidata
andPlotPy
) is compatible with PyQt5, PyQt6 and PySide6, there are some differences in terms of performance between Qt5 and Qt6.For example, the following benchmark has been done on Windows 10 with Python 3.10 (on a quite limited VM):
In other words, results are +50% slower with PyQt6 (and almost +100% slower with PySide6) than with PyQt5.
We need to investigate this and to come with an action plan before Qt5 end-of-life, that is May 25th 2025.