ブレザーのパフォーマンス

asp.net blazor web webassembly

質問

それがまだアルファレベルにあるにもかかわらず、私はブレザーを使い始めたいと思います。私が理解しているように、blazorはWebAssemblyを使用してクライアント側でC#をコンパイルします。そして、私は質問があります:このシステムはJavaScriptでコンパイルされたReact / Vueなどより速く動作しますか?ページが読み込まれるたびにブラウザがWebassemblyライブラリをダウンロードする必要がありますか?インターネット上では、普及しているJSフレームワークのパフォーマンスを比較していないので、マイクロソフトの新しいフレームワークの理論的なパフォーマンスを知りたいと思います。前もって感謝します

受け入れられた回答

ブラウザがページを読み込むたびにWebassemblyライブラリをダウンロードする必要があるのは本当ですか?

いいえ、ブラウザはファイルをキャッシュできます。 Blazorアプリケーション用の一般的なCDNがうまくいくでしょう。

このシステムは、たとえば、JavaScriptでコンパイルされたReact / Vueよりも動作が速いですか。

BlazorはWebアセンブリを使用します。紙の上のWebアセンブリはどのjsライブラリよりも速いはずですが、すべてのブラウザがまだ成熟したWebアセンブリパーサを持っているわけではありません。そのため、ブラウザは現在のところ最適な速度でWebアセンブリを実行しないことがあります。

小さなブレザーアプリを作成してFirefox、chrome、またはedgeで実行できます。ほとんどの場合、FirefoxはChromeやEdgeよりもはるかに高速でブレザーアプリケーションを実行します。つまり、Firefoxでも向上する可能性があるため、ブラウザメーカーでは依然として向上する必要があります。

アプリが頻繁にDOMにアクセスする必要がある場合は、WebアセンブリはInvokesを使用せずに直接DOMにアクセスすることができないので、間違いなくWebアセンブリ/ Blazorは他のJSライブラリと比べて遅くなります。 )

Firefox 10,000のRegisteredFunction.InvokeUnmarshalleでは、空のメソッドの呼び出しに250ミリ秒かかりますが、クロムとエッジでは、私のPCでは2400ミリ秒を超える時間が必要です。純粋なJSでは、同じシナリオで10ミリ秒未満かかります。

https://webassemblycode.com/webassembly-cant-access-dom/

さらに、現在の実装であるBlazorは、ブラウザのWebアセンブリEngineの上に独自のMSILエンジンを持っています。つまり、2人の翻訳者が1人で会話を解釈するように、Blazorプロジェクトを実行します。現在MicrosoftはAOTコンパイラに取り組んでいますが、まだリリースされていません。 Blazorのリリース後は、現在の実装よりもはるかに高速になります。

http://www.mono-project.com/news/2018/01/16/mono-static-webassembly-compilation/

WebアセンブリはWeb開発の未来であると安全に仮定することができますが、現時点ではBlazorの未来については何も言えません。紙の上では、Blazorは他のどのフレームワークよりも高速になる可能性がありますが、理論を実用的にするためにはWebアセンブリの保守担当者、ブラウザ開発者、Microsoft、およびコミュニティからのコミットメントが必要です。

2018年7月10日に更新

WebAssemblyリポジトリに新しい提案があります。

  1. WebAssemblyにDOMの直接処理を許可する。 https://github.com/WebAssembly/host-bindings/blob/master/proposals/host-bindings/Overview.md
  2. GCを使用したWebアセンブリの参照型https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md

上記の2つの提案は、将来DOMとWebアセンブリの間のはるかに速い対話への道を開くでしょう。 Iow Blazorは将来的にもっと速くなるでしょう。

2018年10月17日更新

FirefoxチームはJS - > JSメソッド呼び出しと同じくらい速くJS - > WASM呼び出しに到達することができました。 WebAssemblyのサポートに関しては、今のところFireFoxは他のどのブラウザよりもはるかに優れています。

https://hacks.mozilla.org/2018/10/calls-between-javascript-and-webassembly-are-finally-fast-%F0%9F%8E%89/



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ