2

私は .NET DataContractSerializer を使用して、ファイルからオブジェクト ツリーを逆シリアル化し、アプリケーションが最初に読み込まれたときから 3 秒以内に処理しました。同じ逆シリアル化ステップを何度も実行すると、1.5 秒しかかかりません。

その理由は何ですか?また、初めての逆シリアル化のパフォーマンスを改善する可能性はありますか (1.5 秒に下げるなど)?

4

1 に答える 1

3

SGenを使用してみましたか? プロセスが初めて逆シリアル化を試みるとき、リフレクションを使用してシリアル化コードを生成する必要があります。これにより、最初の実行にかなりのコストが追加されます。

XML シリアライザー ジェネレーターを使用しない場合、XmlSerializer は、アプリケーションが実行されるたびに、各型のシリアル化コードとシリアル化アセンブリを生成します。XML シリアル化の起動時のパフォーマンスを向上させるには、Sgen.exe ツールを使用して、これらのアセンブリを事前に生成します。これらのアセンブリは、アプリケーションと共にデプロイできます。

于 2013-10-31T14:13:22.357 に答える