Uno Platform WASM 性能:良好/可接受/糟糕

Posted

技术标签:

【中文标题】Uno Platform WASM 性能:良好/可接受/糟糕【英文标题】:Uno Platform WASM performance: good / acceptable / terrible 【发布时间】:2022-01-21 11:13:34 【问题描述】:

我正在研究 Uno Platform 并尝试在我的笔记本电脑上运行 Getting-Started-Tutorial-1。很简单:demo。但是在 localhost 上加载这个简单的页面需要 10 秒。

在UnoConf 上,据说Uno Gallery 是用uno 平台编写的。我测量了用户看到页面和加载所有背景数据的时间。结果:

Safari - 50 秒的白屏,然后加载页面(我没有找到如何测量背景负载)。 Firefox - 30 秒白屏,总共 34 秒(4 秒页面在后台加载) Crome - 17 秒的白屏和总共 21 秒(后台加载 4 秒页面)

在不清除缓存的情况下重新加载页面几乎需要同样的时间。

为了比较,我打开了Vuetify Gallery。向用户显示页面需要 3 秒,总负载为 30 秒(27 秒页面在后台加载)。因此,用户可以在 3 秒内看到该页面并与之交互。

问题:这是真正的 Uno Platform WASM 性能吗?在移动应用程序(androidios)中是否相同?任何解决方案如何加快速度?您能否推荐其他框架来开发性能更好的移动应用程序 + 网页?

【问题讨论】:

【参考方案1】:

WebAssembly 中的加载性能高度依赖于应用的编译方式。有多种运行时执行模式(请参阅https://github.com/unoplatform/Uno.Wasm.Bootstrap#runtime-execution-modes),它们会影响应用程序的下载大小和运行时性能。然而,总体而言,WebAssembly 应用程序(至少目前)比基​​于 javascript 的应用程序的下载量更大——因此在连接速度较慢的情况下,它们第一次加载也需要更长的时间。后续加载应该很快。展望未来,性能和下载大小将随着 WebAssembly 方面的新创新以及 .NET 未来版本的新改进而不断提高。

对于 Uno 平台的移动和桌面目标,性能非常接近原生,加载时间将与该平台上任何基于 .NET 的移动应用程序的性能相匹配。

【讨论】:

感谢您的详细回答。现在 Getting-Started-Tutorial-1 使用任何 WasmShellMonoRuntimeExecutionMode 参数加载大约 5-6 秒。尽管这是本地主机并且互联网速度不会影响它,但我无法加快速度。正如我在问题中提到的那样 - Uno Gallery 的每次加载/重新加载几乎都需要相同的时间(Safari 上为 45-50 秒,Chrome 上为 15-20 秒),尽管它不是第一次加载。你知道有哪些使用 Uno Platform 编写并发布到互联网上的网站吗? 很高兴听到移动设备上的性能。谢谢。

以上是关于Uno Platform WASM 性能:良好/可接受/糟糕的主要内容,如果未能解决你的问题,请参考以下文章

Uno Platform:未找到导入的项目

Uno Platform - 共享项目中的参考资源字典

在 Uno 平台上如何使用 Preferences.Set 命令

Arduino uno 过热

wasm runtime 性能测试

从首届 WebAssembly Summit 看 Wasm 未来发展方向——安全性性能和浏览器引擎