我正在用QTWeAssembple6.3检查示例(QtQuickControls 2.0),在局域网上,特别是在智能手机上,通过局域网加载应用程序的时间太长了。太慢大约是40秒。大多数时候,正如我在屏幕上看到的,它是“编译”。
我已经检查了Felgo的演示应用程序(我希望它们非常完美),但是在我的智能手机上,加载这个沉重的例子需要20到30秒。https://felgo.com/try-wasm/
发布于 2022-06-14 11:07:05
本例中的“编译”指的是qtloader.js内部调用的qtloader.js。这基本上是将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的文件被压缩为5MB。这将使其他相当大的下载速度更快一些。
但是,即使在进行了所有优化之后,WASM的Qt仍然必须下载并加载完整的Qt框架,这将需要时间。在我的安卓手机上,一个较小的WASM将在3到4秒内在本地网络上加载,但这在很大程度上取决于设备的功能(我用CDP浏览器 WASM进行了测试,它基本上是一个显示一些数据的QTreeView )。
https://stackoverflow.com/questions/72389652
复制相似问题