Java SAX を使用して、非常に大きな XML ファイルを解析しています。characters
実装は次のようになります。
@Override
public void characters(char ch[], int start, int length) throws SAXException {
String value = String.copyValueOf(ch, start, length);
...
}
( ch[]
SAX によって渡される配列はかなり長くなる傾向があります)
しかし、最近パフォーマンスの問題が発生しており、プロファイラーは、CPU 使用率の 20% 以上がString.copyValueOf
(内部で呼び出さnew String(ch,start,length)
れた) の呼び出しを上回っていることを示しています。
文字の配列から文字列を取得し、開始インデックスと長さを or より効果的に取得する方法はありますString.copyValueOf(ch, start, length)
かnew String(ch,start,length)
?