Релиз нового процессора от Apple был для меня долгожданным. И это неудивительно: у меня всегда в домашних и рабочих компьютерах были камни от AMD или Intel. Эта ниша нуждалась в революционном прорыве. Так я для себя и воспринимал раньше слухи вокруг Apple Silicon.
Однако после релиза выяснилось, что 32-битные приложения не поддерживаются. И это было первоначальным разочарованием. 32-битная архитектура очень часто используется в веб-разработке, а это именно моя сфера деятельности.
Собственно, стек, с которым я работаю, состоит из: Python, JavaScript, PHP, Go, MySQL/MariaDB, PostgreSQL, Elasticsearch, Redis и Docker.
Главное из этого Docker – это программа, которая позволяет «упаковать» приложение со всем его окружением и зависимостями в виртуальный контейнер, который можно развернуть практически на любой ОС. Запустил контейнер с нужной средой, вжух-вжух, и в продакшн. И как раз у него были большие проблемы с M1.
Оставалось только ждать…
Прошло время, на Reddit вовсю говорили о поддержке 32-битных приложений через эмуляторы, случился релиз Docker под M1, и Apple выпустила новый iMac.
Теперь я могу для себя решить: стоит брать рабочую лошадку на новых процессорах Apple Silicon или нет.
Взял iMac на M1 и начал тестировать
На чем тестил:
На чем работаю уже 5 лет:
Начал собирать в Docker образы, с которыми обычно работаю, и все собралось без проблем, за исключением Elasticsearch (поисковая система, написанная на Java). Использовал очень древнюю версию, пришлось обновиться до более свежей, и все завелось.
Ради интереса сравнил скорость сборки приложения на React (JavaScript-библиотека для написания веб-приложений), собранного через webpack (сборщик модулей JavaScript).
На M1 собралось за 17.66 секунд:
На старом Intel — за 23.56 секунд.
Собирал и другие приложения через webpack, и везде разница была 25-30%.
Захотелось сравнить сборку образов докера, хоть это делается и не так часто, но зато работу с сетью можно затестить.
Образ PHP 7.3 (язык программирования, чаще всего использующийся в веб-приложениях) с нужными мне зависимостями на М1 собрался за 152 секунды.
А на Intel за 301 секунду. Разница весьма ощутима.
А что с архивацией? pbzip2(архиватор, который может использовать сразу несколько ядер процессора) работает отлично: использует 7 ядер точно. На счет последнего не уверен.
htop (консольная утилитка для мониторинга процессов) показывает только 7 ядер и, судя по нагрузке, 8 ядро не используется. Думаю, оно зарезервировано на другие, системные цели.
Таким образом, 4.4 гигабайта данных разного типа на М1 сжимается через pbzip2 за 1.10 минуты.
На моем Intel — за 1.41 минуты.
А что с нагревом
Хотелось бы пару слов сказать про температуру.
Средняя температура с работающим докером при использовании браузера и IDE (среда разработки) – 36-38°C.
При использовании pbzip2 получалось прогреть до 55°C, после чего кулеры начинали крутиться с ~5500 RPM, и все остывало.
Только играя в Dota 2, получилось разогреть до 62°C.
А вот моя любимая Half-Life 2 не работает :(
В итоге я однозначно решил обновиться до компьютера с М1, уж очень радует температура процессора, но пока хочу MacBook Pro 16 c Apple Silicone.
А вообще, тем, кто работает с Big Data или в DevOps, однозначно рекомендую, если вы, конечно, не используете сервера с Xeon для локального деплоя.

23 комментариев
Форум →