Медленный xamarin build в визуальной студии 2017 - PullRequest
0 голосов
/ 01 июля 2018

Я недавно разрабатывал приложение на Xamarin в Visual Studio 2017, и я не уверен, является ли ожидаемая производительность во время сборки и отладки ожидаемой или что-то не так.

Среда: IMAC, конец 2015 г., четырехъядерный процессор i5 @ 3,5 ГГц, 24 ГБ ОЗУ. Я выполняю Visual Studio (последняя версия) в соответствии с параллелями 13 в Windows 10 и назначил все четыре ядра и 20 ГБ ОЗУ для виртуальной машины (хотя это не имеет значения, если я назначу меньше).

Решение представляет собой стандартное решение на основе ксамарина с 3 проектами и примерно 10 классами с примерно 300loc (да, на самом деле, там почти ничего еще нет). Восстановление занимает около 1 минуты. Запуск приложения в режиме отладки занимает около 30 секунд для появления симулятора. Глядя на размер кода и технические характеристики оборудования, я ожидал, что сборка и моделирование займет считанные секунды. Я ошибся? Даже учитывая ВМ, я бы не ожидал этих цифр. Кто-нибудь может поделиться опытом / мыслями?

1 Ответ

0 голосов
/ 01 июля 2018

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

Также ваше приложение передается на ваше устройство через USB или по сети (по умолчанию будет USB).

Учитывая то, что происходит "под капотом", 30 секунд - это довольно быстро.

Тем не менее, я обнаружил, что производительность меньше зависит от процессора и оперативной памяти (по крайней мере, если ваша машина имеет приличное количество обоих), но от производительности вашего жесткого диска.

Если вы действительно хотите ускорить процесс, вы можете запустить Visual Studio и выполнить компиляцию на диске nvme (альтернативой может быть SSD-рейд).

Например, у меня когда-то было приложение xamarin, которое зависело от различных пакетов nuget. Компиляция версии для iOS заняла около 25 минут (полная перестройка) на Mac Mini (модель 2011 года улучшена с вторичным рынком Samsung 850 Pro), переключение на решение для виртуальной машины, работающее на каньоне черепа NUC, оснащенном приводом Samsung 950 Pro nvme, ускорилось процесс невероятный 2,5 минуты.

...