2009-03-26 13 views
0

70 MBを超える多くのXMLファイルを処理するという問題に直面しています。検証とアクセスには多くの時間がかかります。今私は、次の手順でアプリケーションのパフォーマンスを向上させることができるかどうか疑問に思っています。GZIPを使用してXML解析を強化する

70MBのxmlファイルをgzipファイル< 1MBで圧縮できます。 私はgzipファイルだけを保持できました。データの操作 は、次のように行うことができる:

  • RAM内contenを抽出するために、例えばStringBufferInputStreamとGZIPInputStreamを使用してjava.io.Fileの(唯一の小さなファイル)
  • ではgzipを使用できるようにします
  • コンテンツ(RAM)と
  • 作業:新しいXMLコンテンツ(RAM)を表しているRAM内の文字列を作成
  • ...、検証を解析
  • 使用GZIPOutputStreamファイルシステム(再び小さなコンテンツ)にアクセスします

私はこれを行うことができますか、私の考えに間違ったIDがありますか?

THXを事前に入力してください。 Hans

答えて

1

HDからの70 MBの読み込みには、ハードウェアによっては1〜2秒しかかかりません。したがって、遅延が4秒を超えると、ボトルネックはあなたのHDではなくXML処理とそれを使って何かをする。

gzipのアイデアをコーディングする前に、サンプルXMLをコードにハードコードすることができます(はい、70 MBを1つの文字列として挿入します) ! ") - 端末にいる場合はユーザー入力を待ち、XML処理に要する量を確認します。

この方法では、処理前に70メガバイトをメモリにロードして(コードとして)、実際に消費する量を確認する必要があります。

その後、十分に速く処理されていることがわかると、問題は明らかにHDです。そうでない場合は、XML処理を最適化しようとする必要があります。

+0

もちろん、いくつかのシナリオで遊ぶ必要があります。私もあなたもテストします。 –

+0

私の問題の原因は、大きなファイルへのアクセスが多いことです。たとえば、アプリケーションの起動時に、ナビゲータはフォルダ内のすべてのファイルをチェック(検証)して、アイコンの装飾や無効のレポートを作成する必要があります。 –

+0

さらに、解析されたすべてのファイルをJavaオブジェクトとしてメモリに保持することはできません。これは、RAMを破棄するためです。 –

関連する問題