[英]Why does Qt Webassembly app start too long?
我正在使用 QT Webassembly (6.3) 檢查示例 (QtQuickControls 2.0),通過 LAN 將應用程序加載到網絡瀏覽器中需要很長時間,尤其是在智能手機上與筆記本電腦相比。 太慢了大約 40 秒。 正如我在屏幕上看到的那樣,大多數時候它是“正在編譯”。
我已經檢查了 Felgo 演示應用程序(我希望它們非常完善),但在我的智能手機上,加載重型示例大約需要 20-30 秒。 https://felgo.com/try-wasm/
本例中的“編譯”指的是 qtloader.js 內部調用的WebAssembly.compile() 。 這基本上將 WASM 二進制代碼加載到網頁中。
根據qtloader.js默認模板中的注釋,使用回退時會顯示“正在編譯”。 通常它應該說“下載/編譯”,這是更快的方法。
return WebAssembly.compileStreaming(response).catch(function(error) {
// compileStreaming may/will fail if the server does not set the correct
// mime type (application/wasm) for the wasm file. Fall back to fetch,
// then compile in this case.
return fetchThenCompileWasm(response);
});
因此,請檢查是否按照評論建議正確設置了 mime 類型。
提高性能的第二個選項是在您的 Web 服務器設置中啟用 gzip 壓縮。 WASM 文件壓縮得很好,例如在我的測試中,一個 13 MB 的文件被壓縮到了 5 MB。 這將使原本相當大的下載速度更快一些。
但即使經過所有優化,Qt for WASM 仍必須下載並加載完整的 Qt GUI 框架,這需要時間。 在我的 Android 手機上,較小的 WASM GUI 將在大約 3 到 4 秒內加載到本地網絡上,但這在很大程度上取決於設備的強大程度(我使用CDP Browser WASM GUI 進行了測試,它基本上是一個顯示一些數據的 QTreeView)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.