Как сократить время загрузки Spring.NET DLL - PullRequest
1 голос
/ 14 ноября 2011

Я использую Spring.NET и сталкиваюсь с проблемной длительностью загрузки Ioc Container.Конфигурация контекста приложения содержит всего несколько (например, 10 объектов), но иногда для загрузки контейнера требуется до 20 секунд.Я вижу, что в отладчике это время объясняется загрузкой большого количества (DDL?) С нечетными именами.Конечный результат - служба Windows занимает много времени, и ИТ-операторы считают, что она зависла.

Что я могу сделать, чтобы избежать этого.Я пробовал "Просто мой код".Есть идеи?

'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'

1 Ответ

1 голос
/ 30 июня 2012

Меня попросили поделиться приведенным выше комментарием в качестве ответа, чтобы другие нашли его полезным.

Медлительность была в .NET c # Reflect.Emit использовалась явно. Мы используем его для генерации прокси-серверов, которые реализуют односторонние операции ServiceContract, чтобы они передавались через NMS + ActiveMQ вместо транспортов, поддерживаемых WCF. Запрос / ответ отличаются только наличием типа возврата вместо void, и для них стоимость каждого метода составляла 200-400 мс. Поэтому я выделил односторонние способы разделения интерфейсов, чтобы они не передавались через прокси. Тем не менее, я не удивлюсь, если Spring AOP страдает от тех же проблем с производительностью ... но, возможно, только для DataContract arge / return типы

...