2017-02-15 44 views
1

官方docs說,新的Qt 5.8版本:明顯的區別QtQuick

不少東西已經在Qt的QML和Qt Quick的發生。 QML 引擎已經獲得了對磁盤上的QML 和JS文件的二進制表示形式的緩存支持,從而減少了引擎的啓動時間和內存消耗。

但似乎既沒有啓動時間也沒有改善內存消耗,而且它已經變得越來越慢並且RAM正在使用更多。

我提供了一些測試。 創建一個新的空白項目,推出task manager和我所看到的是:

內存使用:

的Qt 5.8 18.8 MB

的Qt 5.7 14.2 MB

啓動時間:

當我推新物品進入StackView通過URL

那麼他們提高了什麼?

+2

我懷疑這會超越射擊到黑暗中的任何地方。你有沒有用更復雜的例子來試用它?也許引擎變大,但QML文件的內存消耗更小?對於我不知道的啓動時間,但提到* caching *時,它對第一次啓動沒有幫助,並且可能沒有爲各種來源提供可用性。但正如我所說:我只是猜測。 – derM

+0

雖然有趣的問題! – derM

+1

@derM yep我試過了。我的主要項目有超過20萬行代碼,顯示差異大約30mb。 '也許引擎變大了,但QML文件的內存消耗更小?'可能是原因。 – Mikhail

回答

0

在第一次啓動時會生成.qml/.js文件中的緩存代碼和數據結構。生成的.qmlc和.jsc緩存文件將用於進一步啓動,因此在第一次啓動應用程序時您將看不到任何區別。

我的主要項目至極已超過20K行的代碼

這也取決於如何您的QML代碼被安排和有多大你的QML文件時,你需要儘量減少產生在啓動QML對象-up,將你的qml文件分成邏輯單元,並儘可能使用Loader。