1
我正在使用Spring.NET並運行時出現問題,長時間的Ioc容器加載時間。應用上下文配置只有少數(如10個對象),但有時需要20秒才能加載容器。我可以在調試器中看到這一次似乎是由於加載大量(DDL?)與奇數名稱。最終的結果是Windows服務需要很長時間才能啓動,IT運營商認爲它已經掛起。如何縮短Spring.NET DLL加載時間
我該怎麼做才能避免這種情況。我試過「只是我的代碼」。有任何想法嗎?
'Forge.Enterprise.Infrastructure.Scheduling.Server.vshost.exe' (Managed (v4.0.30319)): Loaded '0xclmvcv'
'Forge.Enterprise.Infrastructure.Scheduling.Server.vshost.exe' (Managed (v4.0.30319)): Loaded 'rpuvyhdh'
'Forge.Enterprise.Infrastructure.Scheduling.Server.vshost.exe' (Managed (v4.0.30319)): Loaded 'sq10jbae'
'Forge.Enterprise.Infrastructure.Scheduling.Server.vshost.exe' (Managed (v4.0.30319)): Loaded 'tmpk4bvl'
您可以發佈您的配置文件嗎? – Marijn
這些dll名稱看起來很像由.Net的['XmlSerializer'](http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx)創建的動態dll。但它們可能由別的東西產生。對於Aop,spring會動態創建代理,但該動態dll的名稱通常是'Spring.Proxy'。 [這個問題](http://stackoverflow.com/questions/2394699/net-dynamic-assemblies)有一個動態DLL的其他來源的答案。 – Marijn
事實證明,這是Reflect.Emit緩慢的問題,尤其是當發佈具有非無效返回類型的方法時。在這種情況下,每種方法的成本大約是1-2秒。您對XmlSerializer DLL的權利,這些是針對我們爲XML序列化註釋的數據合同 –