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バイトでした。
![](https://blog.unikktle.com/wp-content/uploads/2023/07/image-5.png)
同じデータでも、通信するモデルクラスのKeyを数値インデックスにし、通信データを Lz4圧縮した、.NET 6.0とMagicOnionで実現するgRPC通信(Windowsフォーム)v6 の通信データ量は、10バイトと小さくなっています。
![](https://blog.unikktle.com/wp-content/uploads/2023/07/image-4.png)
コメント