2009-05-15 1 views
0

私は初期の負荷ではすばやくアクセスする必要があるデータが少量ありますが、それ以降は必要ありません。スタートアップ時に必要な少量の99%静的データに対する最善のストレージアプローチですか?

今、データ(汎用リスト)をXMLファイルにシリアル化してあり、必要に応じてロード時にデシリアライズしています。

私はXmlSerializerまたはBinaryFormatterを使うべきですか?私はファイルのサイズを心配していませんが、シリアル化の速度。

+0

http://developers.de/blogs/damir_dobric/archive/2007/08/05/performance-comparison-of-most-popular-serializes.aspx –

答えて

2

BinaryFormatterは、XmlSerializerよりも速い。文字列の解析の問題がなく、はるかに少ない膨大なフォーマットに対処する必要があります。

0

XMLが遅すぎる、チェックするには構文が多すぎます。タブ区切りまたはCSVファイルを入手できますか?

1

"時間の約97%という小さな効率を忘れるべきです。早すぎる最適化はすべての悪の根源です。" - Don Knuth

もしそれが少量であれば、確かに遅いですが、XmlSerializerを使ってください。これは、誰かがクラッシュを診断するためにファイルを見ようとしたときに誓いを立てるような小さな効率の1つです。

+2

XmlSerializer *を使用せずに*シリアル化アセンブリを使用しないで初めて痛いほど遅くなる。あらかじめ生成されたシリアライゼーションasmを使用すると、許容可能なperfが得られます。 –

2

興味深い回答。私はコードとしてデータを永続化し、アプリケーションの残りの部分から参照されるアセンブリに組み込むことを提案するつもりでした。

0

John Saundersは提案していないので、コードとして静的データをシリアル化することをお勧めします。メンテナンス性には微妙なうなずきがあるので、外部のアセンブリにそれを置くことができます。これは、最高のパフォーマンスと初期複雑性の最小限のソリューションでなければなりません。

データが規則性を伴って変更されるか、ビジネスロジックの場合、この回答は無視してください。あなたが警告されないように!

+0

これは非常に興味深い考えですが、私の場合、データはデプロイメントからデプロイメントに変わる可能性があります。 – Nate

関連する問題