私はかなり大規模で複雑な winforms アプリケーションを持っています。起動時間を短縮するために、次のバッチ ファイルを使用してシリアル化アセンブリを事前に生成しました。
; delete any existing serialization assemblies
del *XmlSerializers.dll
; gen new serialization assemblies
for %%a in (*.dll) do sgen /assembly:%%a
; delete .deleted files (generated for assemblies which do not allow serialization)
del *.dll.deleted*
しかし、驚いたことに、起動時間は実際には 4.6 秒から 6.1 秒に伸び、1.5 秒も跳ね上がりました。これは、コールドスタートでもウォームスタートでも当てはまりました。
だから、質問:
- シリアル化アセンブリを配置すると、アプリの起動が遅くなるのはなぜですか?
- アプリがシリアル化アセンブリを生成しているときに、Perfmon またはその他のツールを介して確認する方法はありますか?
- シリアル化アセンブリを正しく生成していますか?