2010-12-05 31 views
1

パフォーマンスはどのように向上しましたか?XMLとCSVファイルの読み込みJava

JavaでFileReader/BufferReaderを使用してXMLをDocumentBuilderまたはCSVで読み込む?

+5

これは非常に幅広い質問です。答えは、ドキュメントのサイズや、実行しようとしている処理の種類など、多くの要素によって異なります。あなたは解決しようとしている問題についてさらに詳細を教えてください。 –

+0

それは問題ではありません。XMLやCSVで記述できる長さの文書が同じであるとしましょう。私たちのアプリケーションがそれを読むように、より良い方法は何ですか? – Dejell

答えて

1

私はblundersとduffymoの両方に同意します。私はちょうど以下を追加したかった。

既に言われたように、両方ともデータ形式なので、データについて考えてください。どのくらいの規模と複雑さですか?それが階層的であれば、CSVを忘れてしまいます。それほど大きくなければ同じことをする。

XMLについて考えてみると、DOMがそれを解析する唯一の方法ではないことに注意してください。 SAXは高速です。また、XMLを使用してデータモデルとXMLスキーマの間のマッピングを定義できるようにするDigester(SAXの上に構築されています)を使用して、非常に迅速に実行できます。

データが非常に大きく、パーサーが非常に高速でなければならない場合、JSONをチェックしてください。あまり冗長ではないので、XMLよりも速くなければなりません。

1

パフォーマンスについてはわかりませんが、よく使われているパーサーを見つけるのが簡単です。今はJDKに組み込まれているXMLパーサーがありますが、私はCSVパーサーを認識していません。 XMLはCSVよりはるかに普及していると思う。

もう1つの要因はデータの性質です:XMLは階層を示唆し、CSVは表を提案します。私は、データを読み込むための「最良の」方法は、このようなことにもっと依存していると思います。

1

私は速いビルドと簡単なメンテナンスやパフォーマンスに言及することはできませんが、私はそれが本当にあなたがどのように解析されている文書を使用するかに依存していると推測していますが、例えばドキュメントノードを読むことはcsvよりも高速ですが、CSVでドキュメントを読み込む方が高速かもしれません。すべてのことが言った、CSVは悪い、それは非常に不安定なデータストアを意味します。 XMLはより多くのオーバーヘッドを持ちますが、方法はより安定しています。

RELATED_QUESTION:読者が唯一のファイルを読み込み、値の解析が、ここでは非常に簡単なステップであるとWhen and Why is XML preferable to CSV?

1

FileReaderクラスでCSVファイルを読み込むには、高速です。 DOMReaderSAXParser(あなたは、ビルダークラスを使用して文書を読んでいない、私の知る限りでは、XML文書を作成するために使用される)を使用してXMLファイルを読み込む一方

は、遅いので、XMLの処理データははるかに複雑なステップです。 XMLファイルは非常に冗長な傾向があります。

XMLファイルの利点は、(XML構造定義のためにXSDを使用しているときに)データ検証にもっと重点を置くことができることです。また、XML要素名(および考えられるコメント)がCSVファイル内のセミコロン以上の意味を持つため、XMLファイルをさらに説明せずに編集できます。

1

私は同じことを考えています。私はちょうど8000レコードの単純なファイルを読み込んで解析するためにExcelを使って原油テストを行った。 XMLのロードには8秒かかりました。 CSVの負荷は1秒未満でした。

私は、CSVは単純な表形式のデータには完全に有効な選択肢であり、オーバーヘッドはほとんどないと考えています。より複雑なシナリオでは、XMLは偉大です...

関連する問題