まず、GRPCクライアント/サーバ実装とwebsocket + protobufクライアント/サーバ実装のスループット/レイテンシのパフォーマンス比較を行った人はいますか?それとも少なくとも何かが類似している。GRPCサーバの応答待ち時間
この目標を達成するために、私はJAVA helloworld grpc client-serverのサンプルを試して、同様のwebsocketクライアントサーバーとの応答の待ち時間を比較しようとしています。現在、私はローカルマシン上のクライアントとサーバーの両方でこれを試しています。
websocket client-serverには、サーバ側で単純なwhileループがあります。 grpcサーバーの場合、私はそれが非同期実行モデルを使用していることに気づきます。私はそれが追加の処理オーバーヘッドの結果、各クライアント要求のための新しいスレッドを作成すると思われる。例えば、私が測定しているwebsocketの応答待ち時間は6〜7msのオーダーであり、grpcの例では約600〜700msの待ち時間が見られ、protobufオーバーヘッドが考慮されています。
grpcの同様の比較を行うには、grpcサーバーを同期して実行する方法がありますか?私は、スレッドの作成/ディスパッチと、非同期処理によって導入されたそのような内部オーバーヘッドのオーバーヘッドを排除できるようにしたい。
私のwebsocketクライアント/サーバの例ではないgrpcには、protobufのオーバーヘッドが含まれていることを理解しています。しかし、私はprotobuf処理によって導入されたオーバーヘッドを測定することによってそれを説明することができます。
また、grpcサーバーを同期して実行できない場合は、少なくともスレッドディスパッチ/非同期処理のオーバーヘッドを測定できますか?
私はJAVAには比較的新しいので、私の無知を赦してください。