在 CPU 密集型计算中需要 Blazor Wasm 性能改进

Ste*_*ing 6 c# visual-studio webassembly asp.net-core blazor

我有 ac# WinForms 应用程序,我已经将它转换为 Blazor Wasm。在大多数用户输入之后,它需要执行一组 CPU 密集型计算(即没有 IO 或 UI 交互)。计算需要根据场景重复(30-50 次)调用一组 25-35 个 C# 类对象中的多个方法。相同的计算代码在 WinForms 和 Blazor 应用程序中运行。

我看到 Blazor 下的性能下降了约 20 倍(例如,WinForms 中为 350 毫秒,而 Blazor 中为 7000 毫秒)。这种程度的退化有意义吗?它的很大一部分是在浏览器中运行所固有的吗?Blazor Wasm 是其中的重要组成部分吗?我已经确认退化分布在计算中,而不是孤立的点。有什么方法可以显着减少退化?如果出于某种原因可能会有所帮助,则可以将执行计算的对象放入类库中。

我已经在 GitHub 的 AspNetCore 讨论中发布了这个问题,但没有任何回应。我使用的是 VS Community 2019 v16.8.2、AspNetCore 5.0 和 Chrome v

谢谢。史蒂夫

Den*_*Den 1

Blazor Wasm 不支持多线程 + 鼠标事件处理等频繁操作对于在浏览器中处理来说非常“繁重”。尝试将操作处理程序推送到队列中并在后台处理它们。