プロが教える店舗&オフィスのセキュリティ対策術

javaで扱えるxmlファイルの上限はあるのでしょうか。

マシンスペックに依存するのかも知れませんが、参考資料や
経験談などを教えてください。

理論上の話ですが、17Gのxmlファイルを扱うのは現実的でしょうか。
宜しくお願いします。

A 回答 (3件)

少なくともDOMでは無理。


32bitOSでは1プロセスあたり確保できるメモリは最大4G(WindosXpの場合は2G)が限界。
つまりDOMだと17Gもあるファイルをノードとして格納するメモリを確保できません。
Javaの制限ではなくOSとしての制限がきます。
恐らくDOMの解析中にメモリ不足の例外が投げられるでしょう。

※Windowsの32bit版は認識できるメモリは最大4Gで1プロセスあたりは2Gです。
Vista Ultimate 64bit版なら128Gまで認識できますが、
Javaのランタイムが対応していない可能性もあります。
    • good
    • 0

JavaVMの最大メモリサイズは-mxオプションで指定します。


これのデフォルトは、たしか16MBです。
これを超えると、java.lang.OutOfMemoryExceptionが発生します。

ですがこれはDOMの話。オンメモリで持たないSAXなら何とか処理できます。
ただし、SAXで得た情報をメモリ上に保持し続けたら、結局同じですが。
    • good
    • 0

1ファイルで17GBだとしたら非現実的


他のデータ参照(画像や動画)が混在して17GBならまだあり得るかも
それでもやるとしたら DOMでなくSAXの方が良いかも

或いは17GB用のインデックスに相当する物を作るとか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!