Macbook для android studio

Тестирование MacBook Pro с процессором M1 Pro в Android-разработке

Вы, вероятно, уже прочитали несметное количество отзывов про новые MacBook с процессором M1 Pro и знаете, что они поразительно быстры в тестах или что у них лучшее время автономной работы в своем классе, что в них вернули порт MagSafe, порт HDMI и устройство чтения SD-карт. Но подходят ли они для разработки под Android?

Если вы не любите читать, то вывод — это просто фантастика. Новые MacBook однозначно являются новым эталоном для нашей отрасли.

Набор

Мне повезло, что у меня есть триада современных компьютеров для тестирования. В этом тесте использовались три компьютера:

  • MacBook Pro 2021 года с диагональю 14 дюймов — M1 Pro (10 ядер) — 32 ГБ ОЗУ
  • Настольный компьютер (Pop_OS!) — AMD 2950x, 4.2 ГГц (16 ядер) — ОЗУ 64 ГБ
  • MacBook Pro 16 дюймов 2019 года — Intel i9 2.4 ГГц (8 ядер) –32 ГБ ОЗУ

Для тестирования производительности я использовал Gradle Profiler с приложением Tonal (которое работает на оборудовании Tonal, а не в нашем сопутствующем приложении). Приложение Tonal состоит из 161 модуля, 175 тысяч строк кода Kotlin, 8 тысяч строк кода Java и 60 тысяч строк XML. Вы можете узнать больше о нашем приложении здесь.

Все тесты Android Studio использовали Bumblebee Beta 1.

Разработка под Android на Apple Silicon

На протяжении всего этого эксперимента мне было приятно понимать, что на Apple Silicon легко все настроить и запустить. У сообщества разработчиков был год на обновление своего кода, и с появлением новых MacBook будет приложено еще больше усилий для полной поддержки Apple Silicon.

Android Studio Bumblebee и выше изначально поддерживает Apple Silicon. Вы можете загрузить версию на веб-сайте Android Studio.

Эта версия Android Studio включает в себя собственный JDK. Убедитесь, что вы указали своему JAVA_HOME на него. Если вы не хотите использовать встроенный JDK, вы можете использовать Zulu JDK. Я протестировал его с версией из комплекта Android Studio и обнаружил, что они оба работают одинаково.

Также поддерживаются эмуляторы Android. Однако вы можете использовать только образы эмулятора arm64. Вы не можете запустить эмулятор armv7 или x86. Также нет трансляции arm/x86, как в эмуляторах Android 11+ на других платформах. Помните об этом, если что-то из этого важно для вашей повседневной работы.

Быстродействие

Чистая сборка

Все показатели быстродействия усреднены для 10 прогонов

Вот временная шкала сканирования сборки Gradle, чтобы понять, насколько распараллелена наша сборка. Чем больше заполнено «строк» (воркеров), тем более распараллелена сборка в этой точке. Такие регионы выиграют от многоядерной производительности, в то время как части сборки, в которых используется только 1 или небольшое количество процессов, выиграют от одноядерной производительности.

  1. M1 Pro: 125 секунд
  2. 2950x: 112 секунд (10% быстрее)
  3. i9: 154 секунды (23% медленнее)

ABI Change in :core (invalidates all feature modules)

  1. M1 Pro: 33 секунды
  2. 2950x: 35 секунд (6% медленнее)
  3. i9: 50 секунд (52% медленнее)

ABI Change in a feature module

  1. M1 Pro: 13 секунд
  2. 2950x: 19 секунд (46% медленнее)
  3. i9: 19 секунд (46% медленнее)

Android Studio очистка кеша и рестарт

Тест реальной производительности, правильно?

  1. M1 Pro: 97 секунд
  2. 2950x: 195 секунд (101% медленнее)
  3. i9: 177 секунд (82% медленнее)

Android Studio Gradle Sync

  1. M1 Pro: 15 секунд
  2. 2950x: 24 секунды (60% медленнее)
  3. i9: 23 секунды (53% медленнее)

Открытие Android Studio

Время до завершения индексации и загрузки проекта

  1. M1 Pro: 16 секунд
  2. 2950x: 27 секунд (68% медленнее)
  3. i9: 23 секунды (43% медленнее)

Figma

Измерено быстрое панорамирование большого файла с увеличением 2% с помощью счетчика кадров в секунду в инструментах разработчика Chrome.

  1. M1 Pro: Стабильно 60–120 кадров в секунду. Ни разу не опускался ниже 60.
  2. 2950x: Нечестное сравнение — монитор 4k.
  3. i9: Обычно 60, но часто 24–60 кадров в секунду при прокрутке к новым областям.

Результаты этого теста поразительны для M1 Pro. Неудивительно, что M1 Pro быстрее MacBook i9 во всех тестах. Однако я не ожидал, что он также превзойдет мой десктопный компьютер — иногда со значительным отрывом. Результаты говорят сами за себя.

Время работы от батареи

Чтобы проверить время автономной работы, я использовал Gradle Profiler в повторяющейся чистой сборке нашего приложения с экраном на первой ступени яркости. Это выходит далеко за рамки обычного использования, потому что при этом почти все ядра постоянно работают на полную мощность.

Читайте также:  Механическая карты для андроид

В ходе этого стресс-теста мой MacBook i9 с диагональю 16 дюймов со 100% до 0% опустился за 58 минут. Впечатляюще плохой результат. За это время приложение было скомпилировано 19 раз.

14-дюймовый M1 Pro проработал 2 часа 10 минут. 16-дюймовый должен предложить примерно на 30% больше времени автономной работы, что приблизит его к 3 часам.

2–3 часа могут показаться ужасными по сравнению с тем, что можно было ожидать от Apple Silicon, однако имейте в виду, что в этом тесте почти все 10 ядер работали непрерывно.

Моя единственная точка данных для «нормального использования» была во время моей первоначальной настройки. Я потратил первые три часа на установку и настройку приложений, а также на быстрые тесты компиляции, и в конце у меня было 66% заряда батареи. Это соответствует примерно 9 часам умеренного использования. Этого времени достаточно для полноценного рабочего дня или перелета по стране, что невозможно с предыдущими MacBook.

Тепловое дросселирование

Температурный троттлинг (пропуск тактов из-за перегрева) — печально известная проблема Intel MacBook, которая заслуживает отдельного разговора. Во время этих тестов батареи у меня был запущен pmset -g thermlog | grep CPU_Speed_Limit, чтобы отслеживать, был ли троттлинг ЦП. Неудивительно, что i9 постоянно находился в диапазоне 60%, корпус был горячим, а вентиляторы были слышны из соседней комнаты. Однако время сборки оставалось прежними. Это был один из самых неожиданных результатов теста.

Apple Silicon не подключен к pmset thermlog (спасибо Zac Sweers), поэтому я мог измерить дросселирование только по его влиянию на время сборки. Корпус был только теплым, и вентиляторы были слышны, но звучали для моих ушей примерно в 10 раз тише и не работали большую часть теста. Ближе к концу теста время сборки увеличилось примерно на 50%. Я перезапустил Gradle Profiler и время сборки вернулось к исходным значениям. Однако оно снова начало подниматься примерно после 20 сборок.

Во время теста я обнаружил, что MacBook i9 стал ощущаться значительно более медленным. Например, Google Docs, Figma и Slack стали крайне медленными. Однако на M1 Pro мне не удалось обнаружить какой-либо значимой разницы в производительности, пока он выполнял сборки. Это очень важно для повседневного качества жизни, и хотя сборки M1 иногда замедлялись, они все равно были быстрее, чем i9, почти в каждой итерации.

Последовательное время сборки — работа до разрядки батареи

Другие интересные наблюдения

  • НЕ ИСПОЛЬЗУЙТЕ помощник по миграции, особенно с Intel Mac. Мне было неприятно отслеживать, какие приложения были универсальными, а какие нуждались в обновлениях. Он также полностью испортил мои права доступа к домашнему каталогу. Я даже не мог открыть папку «Загрузки».
  • Подключение внешнего монитора происходит молниеносно. Внешний монитор даже не мигает черным при открытии и закрытии крышки MacBook.
  • Задачи, которые раньше имели небольшие задержки (поиск приложений в Spotlight и т.д.), теперь выполняются почти мгновенно.
  • Дисплей ProMotion увеличивает воспринимаемую скорость, потому что такие действия, как клики и нажатия клавиш, теперь могут проявляться всего за 8 мс по сравнению с 16 мс на дисплеях с частотой 60 Гц.
  • Использование Linux в прошлом году было заметно худшим по сравнению с macOS. Мне пришлось отказаться от расширений Chrome для таких вещей, как Loom и Todoist. Zoom не поддерживает настраиваемый фон или размытие. У меня было множество проблем со звуком, которые приводили к разочаровывающим впечатлениям от встреч. Случайные проблемы с драйверами могут вызвать серьезные задержки во всех приложениях WebKit на несколько недель без известного решения.

Конкуренты

Когда Apple готовилась к переходу на Apple Silicon, она отстала от последних процессоров Intel. Последние MacBook от Intel включали только процессоры 9-го поколения, которые были известны своими проблемами с питанием и температурой. Intel недавно анонсировала процессоры Adler Lake 12-го поколения, а у AMD появились мобильные процессоры Ryzen 9, которые значительно превосходят процессоры Intel 9-го поколения. Хотя мы никогда не увидим ничего из этого в MacBook, они будут доступны в ноутбуках с Windows. Забегая вперед, я ожидаю, что лидерство Apple Silicon будет еще больше, но будет справедливо отметить и достижения мира x86.

M1 Max

У меня нет M1 Max, с которым можно было бы сравнивать M1 Pro. Однако, несмотря на больший кэш и пропускную способность памяти, тесты ЦП между ними почти идентичны (Max vs Pro). В конечном счете, M1 Max был разработан для людей, которым нужны возможности графического, а не центрального процессора, и вряд ли обновление будет лучше работать в разработке под Android.

32 ГБ ОЗУ

Мой MacBook оснащен 32 ГБ оперативной памяти. Хотя можно получить 64 ГБ, я не думаю, что это необходимо для подавляющего большинства людей. Я разрешил Gradle использовать 20 ГБ, а чистые сборки тратили менее 3 секунд на сборку мусора. Apple Silicon имеет невероятно быструю оперативную память и твердотельные накопители, что делает пространство подкачки намного быстрее, чем на предыдущих MacBook, когда это необходимо.

Читайте также:  Much time для андроид

Возможно, обновление принесет некоторые преимущества в производительности, но в лучшем случае они будут незначительными.

Мысли и выводы

В этих новых MacBook действительно есть все. У них лучшая производительность, которую вы можете найти, и при этом они могут обеспечивать ее часами в кафе или самолете, не будучи подключенными к розетке и не сжигая ваши колени. Помимо цифр и тестов, приведенных выше, невозможно полностью объяснить тот факт, что этот компьютер просто чувствуется быстрым. Печатать, переключать каналы в Slack, открывать большие базы кода или Google Docs очень просто.

Если вы профессиональный инженер, который ежедневно работает с большой кодовой базой, этот ноутбук станет достойным обновлением по сравнению с любым предыдущим поколением. Влияние этого MacBook на вашу способность к быстрой работе окупится в кратчайшие сроки.

Источник

Apple Silicon M1: взгляд разработчика

Обсуждение нового чипа Apple Silicon M1 повсюду. Я купил MacBook Air 16 ГБ M1, чтобы понять, насколько он жизнеспособен в качестве основной машины для разработки — вот предварительный отчет после недели тестирования.

Обсуждение нового чипа Apple Silicon M1 повсюду. Я купил MacBook Air 16 ГБ M1, чтобы понять, насколько он жизнеспособен в качестве основной машины для разработки — вот предварительный отчет после недели тестирования.

Xcode на Apple Silicon M1

Xcode на M1 работает БЫСТРО. Компиляция PSPDFKit PDF SDK (debug, arm64) может конкурировать с самыми быстрыми MacBook Pro на базе Intel, которые предлагает Apple на сегодняшний день — 8:49 мин против 7:31 мин. Для сравнения, мой Hackintosh билдит то же самое менее чем за 5 минут.

Трудно переоценить, насколько это впечатляет для машины без кулера. Последним экспериментом Apple с MacBook без него была 12-дюймовая версия 2017 года, в которой тот же проект собирался 41 минуту.

My M1 MacBook Pro arrived today. Chances are you have various questions, but I think a whole lot is summed up in this 50-second video. (Alt text, because Twitter still doesn’t make this easy: Xcode 12.3 beta unzips in 5 minutes on an M1, vs 13 minutes 22 seconds on an Intel i9) pic.twitter.com/STiivUXXnH

Наши тесты в основном прошли нормально, хотя я обнаружил ошибку, специфичную для arm64, которую мы пропустили раньше, так как мы не запускаем наши тесты на реальном оборудовании в ходе CI. Перенос симулятора на ту же архитектуру, что и у продающихся устройств, будет полезным и поможет найти больше ошибок.

Тестировать iOS ниже 14 проблематично. Похоже, WebKit дает сбой в распределении памяти, выдавая EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0) (FB8920323). Производительность также кажется очень плохой: Xcode периодически зависает, и вся система становится настолько медленной, что курсор мыши дергается. Некоторые симуляторы создают проблемы даже с iOS 14, например iPad Air (4-го поколения), который все еще эмулирует Intel, поэтому постарайтесь избегать этого.

Мы были очень взволнованы переносом нашего CI на Mac Mini с чипом M1 и ожидаем, что MacStadium получит эти устройства, однако, похоже, нам придется ограничить тесты только iOS 14, чтобы это работало. В соответствии с нашим текущим графиком мы планируем отказаться от iOS 12 в третьем квартале 2021 года и от iOS 13 в третьем квартале 2022 года, так что пройдет некоторое время, пока мы сможем полностью перейти на Apple Silicon.

Есть шанс, что Apple исправит эти проблемы, однако на это не стоит рассчитывать — учитывая, что это затрагивает только старые версии iOS, проблема в какой-то момент просто «исчезнет».

Сейчас мы работаем над сбоями в WebKit отслеживая трансляцию Rosetta2 во время выполнения и просто пропуская тесты, в которых используется WebKit. Это не очень хорошо, но, к счастью, мы не часто используем WebKit в нашем текущем проекте. Производительность кажется приемлемой, если вы ограничиваете параллельное тестирование не более чем двумя инстансами — в противном случае системе просто не хватает оперативной памяти, и свап происходит очень медленно.

Docker

Мы используем Docker для автоматизации нашего веб-сайта и загрузочных сред для наших веб и серверных PDF SDK. Docker опубликовал в блоге сообщение о текущем состоянии дел, признав, что в настоящее время система не работает, но они пытаются исправить это. Есть хитрые способы использовать Гипервизор Apple для запуска контейнера Docker вручную, однако для этого нужны контейнеры на основе ARM.

Я ожидаю решения в первом квартале 2021 года, в котором будут работать контейнеры на базе ARM. Нам нужно будет немного поработать, чтобы добавить поддержку arm (что-то уже есть в дорожной карте), так что это только проблема перехода.

Читайте также:  Кнопка назад для андроида

Виртуализация и Windows

Чтобы тестировать наш Windows PDF SDK, большинство наших разработчиков использует виртуальную машину VMware с Windows 10 и Visual Studio. В настоящее время ни одно из решений виртуализации Mac не поддерживает Apple Silicon, однако и VMware, и Parallels работают над этим. Я не ожидаю, что Virtualbox будет обновлен в ближайшее время.

Я ожидаю, что в конечном итоге мы сможем запускать Windows с набором коммерческих инструментов на базе ARM. Уже существуют различные proof-of-concepts, и производительность кажется многообещающей. Microsoft в настоящее время не продает Windows на базе ARM, поэтому будет интересно получить лицензию.

ARM-Windows может эмулировать приложения x86, а Microsoft работает над эмуляцией x64, которая уже внедряется в сборках Insider. Через несколько месяцев появится возможность разработать и протестировать наш Windows SDK с Visual Studio на M1 с приемлемой производительностью.

Запуск более старых версий macOS может быть более проблематичным. В настоящее время мы поддерживаем macOS 10.14 с нашим AppKit PDF SDK и macOS 10.15 с Catalyst PDF SDK, обе версии ОС требуют тестирования. Еще неизвестно, включат ли VMWare или Parallels полный уровень эмуляции x64. Скорее всего, это будет очень медленно, поэтому я бы не стал на это рассчитывать.

Кроме того, 16 ГБ ОЗУ — это мало. При запуске параллельных тестов машина начинает сильно свапить, и производительность действительно падает. Это будет еще более проблематично при запущенных виртуальных машинах. В будущем у Mac-ов будет вариант с 32 ГБ, что поможет решить эту проблему.

Android Studio на Apple Silicon M1

IntelliJ работает над портированием JetBrains Runtime на Apple Silicon. В настоящее время приложения работают через Rosetta 2, однако сборка через Gradle происходит очень медленно. Gradle создает код в рантайме, что кажется особенно плохим сочетанием с логикой опережающей трансляции Rosetta 2.

Я ожидаю, что большинство проблем будет решено к первому кварталу 2021 года, однако, вероятно, пройдет еще больше времени, пока все версии Java не заработают на ARM. Много усилий было вложено в развертывание циклов и векторизацию, и пока еще не все доступно на ARM.

Homebrew

Homebrew в настоящее время работает через Rosetta 2. Просто добавьте перед всем префикс arch -x86_64, и все будет работать. Можно установить дополнительную (основанную на arm) версию Homebrew в /opt/homebrew и смешать установки, поскольку все больше и больше программного обеспечения добавляет поддержку ARM.

В настоящее время это не проблема (производительность хорошая), и со временем это будет просто работать нативно.

Приложения

Большинство приложений просто работают, Rosetta еле заметна. Более крупные приложения в начале заметно снижают производительность (например, Microsoft Word нужно около 20 секунд на трансляцию), но затем двоичные файлы кэшируются и последующие запуски выполняются быстро.

Иногда бывает, что приложение не может быть транслировано и падает при запуске (например, Beamer или клиент Google Drive), но это случается редко. Некоторые приложения не понимают своего места на диске и просят переместить их в каталог Applications, хотя на самом деле это просто переведенный двоичный файл, который выполняется где-то еще. Большинство этих запросов можно игнорировать. Некоторые приложения (например, Visual Studio Code) блокируют автоматическое обновление, поскольку местоположение транслируемого приложения доступно только для чтения. Однако в случае VS Code сборка Insider уже обновлена ​​для ARM и нормально работает.

Приложения на основе Electron работают медленно, если работают на Rosetta. Похоже, что оптимизированный компилятор JavaScript V8 блокирует ahead-of-time трансляцию. Последняя стабильная версия Electron (версия 11) уже полностью поддерживает Apple Silicon, и такие компании, как Slack, уже обновили свои бета-версии для работы в нативном режиме.

Google только что выпустил Chrome, который работает на ARM, однако между ним и Apple Safari, который просто летает на Apple Silicon, все еще существует значительный разрыв в производительности.

Вывод

Новые MacBook M1 быстрые, красивые, тихие, и хайп полностью оправдан. В области программного обеспечения еще многое предстоит сделать, чтобы наверстать упущенное, и ошибки, связанные с более старыми симуляторами iOS, доставляют больше всего проблем.

Все это можно исправить в самом ПО, и вся отрасль в настоящее время работает над улучшением этого опыта, поэтому к следующему году, когда Apple обновит 16-дюймовый MacBook Pro и выпустит следующее поколение своей линейки чипов M, можно будет использовать Mac M в качестве основной машины разработчика.

В настоящее время Apple Silicon M1 будет моим вторым ноутбуком в путешествиях, и я продолжу работать с 16-дюймовым MacBook Pro с частотой 2.4 ГГц и 32 ГБ оперативной памяти, который сейчас является более быстрой машиной. Мне будет намного труднее принять шум постоянно работающих кулеров теперь, когда я знаю, какая тишина скоро станет возможной.

Источник

Оцените статью