QML 程序運行效率


同樣的程序,在 Windows 下面啟動時非常慢,而在 Linux 上啟動時很快,一方面是因為 qml 界面的創建耗時不同,另一方面是因為讀取文件的用時相差太大導致。

On Linux

在 Linux (deepin)上運行 Qt Quick 程序時,讀取文件的用時:

On Windows

在 Windows 10 上運行相同的程序,讀取文件的用時:

上述三個文件大小分別為:

  • SPVertexCode.vsh 1kb
  • SPFragCode.fsh 2kb
  • Craft.obj 598kb

可以看到,在 Windows 上面讀取文件的耗時有 3 秒多,而且僅僅是讀取 600K 大小的文件,所以導致程序啟動時耗費的時間太多。
並且 Linux 是 VMware 中開的一個虛擬機,配置不高,但是讀取文件耗時僅為 Windows 平台下的 1/10.

內存使用情況

另外還發現一個現象,同樣的一份代碼,編譯后在 Linux 上運行時,占用內存約為 60M;
而在 Windows 10 上占用內存超過 100M。
並且隨着運行時間的增加,使用內存逐漸增加,大約每 10s 增加 1M。

使用 QML Profile 分析 Windows 程序后發現是頻繁調用函數導致的 heap 內存使用過高。所以在 QML 文件中使用定時器,每 5 秒運行一次
gc() ,至少能夠保持內存占用不持續升高。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM