У меня есть решение с 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.

10
glosrob 29 Май 2016 в 20:48

5 ответов

Лучший ответ

Я испытал то же самое и сообщил о проблеме в репозиторий 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
Ogglas 12 Сен 2017 в 13:40

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

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

0
Vaerenberg 30 Авг 2016 в 09:30

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

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

Пример кода:

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

};

0
Daniel 17 Авг 2016 в 04:09

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

1
aristov 14 Июн 2016 в 09:13

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

Отключите Resharper IntelliSense, разрешите работу Visual Studio с встроенным IntelliSense.

Меню Resharper -> Параметр -> Среда -> IntelliSense -> Общие

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

После работы с файлом Autommaper CS возвращаю его обратно.


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

Но сейчас мой CPU на уровне 3-5%.

2
Эркин Мухамедкулов 4 Ноя 2016 в 11:38