1

Java、特に J2ME で 1 レベルの階層を持つ 100KB の XML ファイルを解析しようとしています。問題は、XML ファイルのサイズが 100KB であるにもかかわらず、XML ファイルの解析が 1MB を超えていることであり、これが OOME を引き起こしています。

XML の解析でメモリ内のサイズが 10 倍以上になるのは正常ですか? それともパーサーに何か問題がありますか?

もしそれが普通なら、これを行う他の方法はありますか?代わりに JSON を使用するか、XML の階層は 1 レベルしかなく、そのパーティション分割は同一であるため、通常のテキスト ファイルを反復処理することを考えていました。

4

1 に答える 1

1

どのように解析していますか?DOMを使用して読み取ると、オブジェクトモデル全体がメモリに読み込まれますが、 SAXパーサーを使用すると、少しずつ読み取られ、各要素、テキストノードなどのコードが呼び出されます。これは、格納されていないため、消費されるスペースがはるかに少ないことを意味します。何でも、そしてあなたはあなたが記録するものをコントロールしています。

于 2012-11-27T10:10:10.367 に答える