アプリケーションのデータモデルがXMLドキュメントであるプロジェクトを継承しました。私の前の開発者は、このxmlのスキーマに基づいてオブジェクトモデルを作成し、オブジェクトモデルに対してコード化しました。XMLシリアル化が遅い
メンテナンスの数年後、このアプリケーションは、徐々にその年齢を示し始めています。チームリーダーは、これの背後にある主な理由は、XMLシリアル化の「遅さ」が原因だと言いました。私はこれについてBSに電話をかけたいと思っていますが、扱うXMLファイルの多くは2MBを超えており、[Serializable]
と書かれたオブジェクトの裏で何が起こるのかを覚えておいてください。ゆっくりとした理論には真実があるかもしれません。 > XPathのモデルの代わりに、XML - - > POCOモデルあなたの経験で
は、XMLを選ぶすると本当にそう/「遅い」悪いシリアライズですか?
ところでこれは、.NET 2.0のプロジェクトである、と私たちのクライアントは来年後半に.NET 3.5にアップグレードされる可能性があります。
+1すてきな答え。私は、DataContractSerializerのベンチマークを見ると、平均でXmlSerializerよりも約10%速いことがわかりました。 – womp
-1 XMLのシリアライゼーション*はほとんどの場合、Reflectionを使用しているため、 Reflectionを使用しない限り、タイプの詳細を得ることはできません*。今、これらの詳細は*繰り返し使用する必要はありませんが、最初に取得する必要があります。さらに、 'DataContractSerializer'はWCFの一部ではありません。 WCFはそれを大いに活用しますが、WCFの外にあります(名前空間では独自のアセンブリです)。 – casperOne
@casperOne XMLシリアライザは、生成されたアセンブリをキャッシュする正しいコンストラクタを呼び出すと仮定したときにリフレクションを使用します。私はあなたがコンパイル時にもこれを生成することができると信じています – JoshBerke