- ベストアンサー
javaで扱えるxmlファイルの上限
javaで扱えるxmlファイルの上限はあるのでしょうか。 マシンスペックに依存するのかも知れませんが、参考資料や 経験談などを教えてください。 理論上の話ですが、17Gのxmlファイルを扱うのは現実的でしょうか。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
少なくとも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
回答No.1
1ファイルで17GBだとしたら非現実的 他のデータ参照(画像や動画)が混在して17GBならまだあり得るかも それでもやるとしたら DOMでなくSAXの方が良いかも 或いは17GB用のインデックスに相当する物を作るとか。