2017-12-13 10 views
0

へのOutputStreamからペイロードデータをストリーミングする、と私たちはJSON変換を処理するためにJacksonLibraryを使用しています。 (シリアル化と逆シリアル化)。私たちのperfテストでは、オブジェクトを文字列(ペイロード)にシリアライズし、そのペイロードを取得してリクエストを行うHTTPClientがかなりの時間を費やしていることがわかりました。 Jacksonは出力ストリーム/ライターに文字列を直接書き込むことができる機能を提供しています。 (ストリーミングの種類)。道は、我々のアプリケーションではHttpRequestBody

HttpRequestBase/HttpPostなどを設定してペイロード入力としてその出力ストリームからの応答を使用する方法はありますか? - >私はinputstreamへの出力ストリームのPipingはうまくいくと思っていましたが、HttpRequestの入力ストリームを設定するための公開された機能はありません。

答えて

0

ストリーミングを行うには賢明な方法があるとは思いますが、改善する方法の1つはwriteValueAsBytesを使用し、httpclientによってバイトをポストすることです。あまりにも多くのことをどんな結論を出すために -

また、あなたは「が(ペイロード)はHttpClientを要求を行ってペイロードは時間の良い量を取っていることを取って文字列にオブジェクトを直列化」と言っています。正確なボトルネックを見つけるには、より正確に調査する必要があります。例えば。おそらくあなたはjacksonを正しく使用していないでしょう。ここに:https://theartofdev.com/2014/07/20/jackson-objectmapper-performance-pitfall/

+0

ありがとう。私はすでにそのリンクを辿り、ObjectMapperのインスタンスを1つだけ使用しています。他のすべてのケースで生成される限り、私たちはjsonをストリームすることができます。 (ユーザーに返信するなど)。しかし、私たちはこの事件だけに固執しています。私たちはwriteValueasBytesを試し、性能向上をチェックします。 – abhirulz