• ベストアンサー

javaで扱えるxmlファイルの上限

javaで扱えるxmlファイルの上限はあるのでしょうか。 マシンスペックに依存するのかも知れませんが、参考資料や 経験談などを教えてください。 理論上の話ですが、17Gのxmlファイルを扱うのは現実的でしょうか。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • furyfox
  • ベストアンサー率56% (58/103)
回答No.2

少なくともDOMでは無理。 32bitOSでは1プロセスあたり確保できるメモリは最大4G(WindosXpの場合は2G)が限界。 つまりDOMだと17Gもあるファイルをノードとして格納するメモリを確保できません。 Javaの制限ではなくOSとしての制限がきます。 恐らくDOMの解析中にメモリ不足の例外が投げられるでしょう。 ※Windowsの32bit版は認識できるメモリは最大4Gで1プロセスあたりは2Gです。 Vista Ultimate 64bit版なら128Gまで認識できますが、 Javaのランタイムが対応していない可能性もあります。

その他の回答 (2)

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.3

JavaVMの最大メモリサイズは-mxオプションで指定します。 これのデフォルトは、たしか16MBです。 これを超えると、java.lang.OutOfMemoryExceptionが発生します。 ですがこれはDOMの話。オンメモリで持たないSAXなら何とか処理できます。 ただし、SAXで得た情報をメモリ上に保持し続けたら、結局同じですが。

noname#39970
noname#39970
回答No.1

1ファイルで17GBだとしたら非現実的 他のデータ参照(画像や動画)が混在して17GBならまだあり得るかも それでもやるとしたら DOMでなくSAXの方が良いかも 或いは17GB用のインデックスに相当する物を作るとか。

関連するQ&A