過剰なメッセージをプッシュする必要がある低遅延のリアルタイムアプリケーションを実装しています。
TCP接続を介してシリアル化されたオブジェクトまたはプレーンな長い文字列(クライアント側でXMLとして解析されます)を送信することは、パフォーマンスの側面とどのように異なるのでしょうか?
私はミリ秒の用語で話している。
ありがとう、レイ。
過剰なメッセージをプッシュする必要がある低遅延のリアルタイムアプリケーションを実装しています。
TCP接続を介してシリアル化されたオブジェクトまたはプレーンな長い文字列(クライアント側でXMLとして解析されます)を送信することは、パフォーマンスの側面とどのように異なるのでしょうか?
私はミリ秒の用語で話している。
ありがとう、レイ。
これらすべての種類の質問と同様に、私はいくつかのアプローチのプロトタイプを作成し、結果を測定します。
特に、XMLシリアル化アプローチ(XStream、JAXB、SAXを介した解析など)を指定していない場合、それだけで結果に大きな影響があります。
また、Javaオブジェクトのシリアル化とXMLの比較を検討していることにも興味があります。たとえば、JSONやGoogleProtocolBuffersなどのアプローチも検討することをお勧めします。
最後に、このような質問を参照してください。これにより、さらに多くの情報が得られます。
ミリ秒について話している場合は、オブジェクトをXMLにシリアル化/逆シリアル化することを忘れてください。
まず第一に、オブジェクトからXMLへのシリアル化/逆シリアル化にはすでに時間がかかっています。@Brian Agnewが指摘しているように、XMLシリアル化アプローチについても注意深くチェックする必要があります。
第2に、TCPを介したXML(String)は帯域幅に対応していないため、転送に時間がかかります。Google Protocol Buffersは、メッセージのサイズによって異なりますが、これにはいくつかの利点があります。
https://github.com/eishay/jvm-serializers/wiki/Home/25fd014e66738268670adaf44ff5408ba2244d37をチェックしてください。ここでは、Javaのオブジェクトシリアル化フレームワークが比較されています。