Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Blazor WebAssembly HostedのアプリにMessagePackを使ってみる

tomokusaba
January 27, 2023

Blazor WebAssembly HostedのアプリにMessagePackを使ってみる

Blazor WebAssembly HostedのアプリにMessagePackを使ってみる
.NETラボ 勉強会 2023年1月

tomokusaba

January 27, 2023
Tweet

More Decks by tomokusaba

Other Decks in Programming

Transcript

  1. MessagePack for C#とは • C#用の超高速バイナリシリアライザ • .NET Standard2.0以上がターゲットで.NET Core 2.1以上向

    けの最適化がされている • 河合さん(@neuecc)/Microsoft MVP for Developer Techologiesにより開発 • Visual Studio 2022の内部通信 • SignalRのMessagePack Hub • Blazor Serverプロトコル
  2. 計測結果 • 各、20ループ JSON MessagePack MemoryPack 計測1 637ms 293ms 218ms

    計測2 535ms 484ms 252ms 計測3 853ms 345ms 231ms 計測4 522ms 332ms 288ms 計測5 625ms 537ms 305ms 計測6 653ms 426ms 249ms 計測7 713ms 341ms 222ms 計測8 582ms 292ms 257ms 計測9 484ms 289ms 211ms 計測10 868ms 530ms 283ms 平均 647ms 387ms 252ms
  3. 今回の場合の結果 JSON MessagePack MemoryPack 平均 647ms 387ms 252ms 差 -260ms

    -135ms サーバー側をWebAPIとしてシリアライザーをJSONからMessagePackまたはMemoryPack に置き換えただけの雑な実装でもそれなりにシリアライズ・デシリアライズ部分のパフォーマンス向上 は見られることは分かった。 しかし、実アプリケーションベースではどうだろうか??