Файл AutoMapper CS чрезвычайно медленный в Visual Studio 2015

У меня есть решение с 7 или 8 проектами, ни одна из которых не содержит ничего особенного, и все они будут выполняться так же, как вы ожидали бы (и действительно, а также других проектов, которые я использовал на моем текущем компьютере).

Тем не менее, всякий раз, когда я открываю один из файлов AutoMapper MappingConfiguration, Visual Studio останавливается, перемещая курсор на одно место, занимает несколько минут за раз и пытается написать результаты кода во множестве присяжных - много-много и много ругательств.

Кажется, что это только файл MappingConfig.cs. Это даже не так много - возможно, 30 отображений (cfg.CreateMap<Bar,Foo>();) и всего 350 строк кода.

Кто-нибудь испытал замедление работы Visual Studio при использовании AutoMapper?

AutoMapper - 4.2. Я верю, и я использую Visual Studio 2015 Community Edition.

Ответ 1

Я испытал то же самое и сообщил о проблеме репо Github.

https://github.com/AutoMapper/AutoMapper/issues/2217

Они видели это как проблему VS, но я получил хороший ответ для AutoMapper 5.0 <. Используйте AutoMapper Profile Instances, чтобы вы могли разделить конфигурацию на многие отдельные файлы. Это дает некоторые реальные выигрыши в производительности, а не все в одном файле.

https://github.com/AutoMapper/AutoMapper/wiki/Configuration#profile-instances

Ответ 2

У меня есть аналогичная проблема в моем решении. Используя ADK, я нашел причину в моем случае. Resharper получает все процессоры. Точка за точкой я исключает некоторые функции из нее и в результате находит решение.

Выключите Resharper IntelliSense, разрешите работать с Visual Studio собственной разработки IntelliSense.

Меню Resharper → Option → Environment → IntelliSense → Общие

Установите радио в Visual Studio.

После работы с CS файлом Autommaper я верну его обратно.


Не знаю, в чем дело, но я думаю, что это автоматический двигатель отражения Automapper, после обновления Automapper от версии 3.1.1 у меня возникла эта проблема.

Но теперь мой процессор на 3-5% уровне.

Ответ 3

У меня есть тот же опыт, когда я начинаю редактировать файл конфигурации configapper. Мой конфигурационный файл еще меньше (~ 170 строк кода). Visual Studio начинает занимать более 50% процессора, и все замедляется. Я использую VS2015 (Professional) и, кроме того, имеет resharper 10. Версия Automapper - 4.2.1.

Ответ 4

У меня такая же проблема, так как с 4.2 я обновился до 5.1, все еще такая же проблема, кажется, с intellisense или, может быть, с Reshapper?

В любое время, когда вы пытаетесь сделать ForMember, как показано ниже, и процессор поднимается до 50% + до точки, где требуется 30 секунд для ввода символа 1, мне обычно приходится выключать визуальную студию и снова открывать ее, чтобы AutoMapper был непригодным. Или мне нужно загрузить файл в текстовом редакторе Mode, но потом я теряю все приятное intellisense.

Пример кода:

Mapper.Initialize(cfg = >             {cfg.CreateMap()                   .ForMember(dest = > dest.OrderNumber,                      opts = > opts.MapFrom(src= > $"{src.OrderReferenceNumber}" ))

};

Ответ 5

У меня возникла такая же проблема (обновление Visual Studio 2015 3, AutoMapper 4.2.1, Resharper 2016.1.2).

После установки накопительного обновления обслуживания для Microsoft Visual Studio 2015 Update 3 (KB3165756) и перехода на Resharper 2016.2 проблема менее серьезная, но он все еще существует.