Gaps in QML Profiler - Performance issues
-
Hello,
I'm working on a large QTQuick application with heavy usage of C++ in the backend and QML in frontend. The app is ran on an Embedded Linux platform with Wayland-EGL backend. I am trying to address performance issues whereby the GUI will sometimes freeze, and also stop receive/sending messages in the backend (QUdpSockets).
From the QML profiler, I can see that I get almost periodic blips (see photos) of inactivity in the QML Profiler, which I've been able to correspond with inactivity in the GUI (for example, a second clock in UI freezes). I can also force larger periods of freezing if I enable heavier GUI usage, and enable other backend features such as video and data recording (File I/O).
I'm auditing the C++ backend to ensure there are not any blocking calls on the GUI thread, but have not had much luck so far. I'm hoping to get some insight from the experts here on what could be some other causes or common pitfalls which could cause this sort of behaviour of the application.
Given the entire QML profiler shows inactivity during these blips, I have figured it must be from the C++ backend. I've suspected excessive QTimers and QProcesses in the backend, but have not seen much difference in performance after disabling many of them. Could OS scheduling of the process be a factor in this?
Any insight or thoughts are appreciated.
Cheers!