0

やあ、仲間のプログラマー、

速度が重要な Java アプリケーションに取り組んでいます。JSON のストリームを処理する必要があります (サーバーへの要求は、後で分析するために継続的に解析する json オブジェクトを返します)。Json オブジェクトの長さは約 2000 文字なので、JSON パーサーを使用する代わりに (indexOf、substring などを使用して) 文字列として扱う方が速くないのではないかと考えていました。(Jackson と Json-lib の両方を目立った違いなしに使用しました) ? 数ミリ秒節約できますか?

ありがとうございました !

4

1 に答える 1

0

そこから何を知る必要があるかによって異なりますが、一般的には JSON パーサーを使用する方が良いと思います。パーサーは高度に最適化されているため、多くの値を読み取る必要がある場合は、独自の試みよりも優れています。また、パーサーは空白を無視しますが、明示的に処理する必要があります。

自分で何かをチェックすることは、あなたが思っているよりも難しいです。たとえば、プロパティ 'x' が存在するかどうかを知る必要がある場合、 string の存在を確認するだけでは不十分xです。これは、値の一部である可能性があるためです。x:間にスペースがある可能性があるため、 を探すことはできません。を見つけxた場合、それが適切な場所にあるかどうかわかりますか? それは正しいオブジェクトの一部ですか、それともまったく予期していなかったサブオブジェクトの一部ですか?

気が付く前に、自分でパーサーを書いていることになります。

違いに気付かない場合は、わざわざパーサーを使用しないでください。パーサーが最も簡単で、最も安全で、最も柔軟な選択肢だからです。必要な場合にのみ最適化を開始してください。

于 2012-12-03T02:16:10.320 に答える