MagicOnionが通信しているデータサイズを測定する場合、送信するデータクラスのインスタンスを MessagePackSerializer.Serialize()し、シリアライズされたバイトデータのサイズから測定できます。
1 2 3 4 5 6 7 8 9 10 |
var modelClassA1 = new ModelClassA() { IntA = 1, StringA = "aa", ColorA = Color.FromArgb(10, 20, 30) }; var length = MessagePackSerializer.Serialize(modelClassA1).Length; |
MagicOnionは、MessagePackでシリアライズしたバイナリデータを gRPC通信する為、MagicOnionの通信データサイズは、MessagePackでシリアライズしたバイナリデータのサイズと同じになります。
.NET 6.0とMagicOnionで実現するgRPC通信(Windowsフォーム)v2 で通信していたデータクラスの通信データサイズを計ってみると、18バイトでした。

同じデータでも、通信するモデルクラスのKeyを数値インデックスにし、通信データを Lz4圧縮した、.NET 6.0とMagicOnionで実現するgRPC通信(Windowsフォーム)v6 の通信データ量は、10バイトと小さくなっています。

コメント