Featured image of post Сравнение MacBook M1 Pro и M4 Pro глазами разработчика

Сравнение MacBook M1 Pro и M4 Pro глазами разработчика

Сравнил MacBook M1 Pro и M4 Pro с упором на задачи разработчика: сборка проектов, тесты, AI и рендеринг. Цифры, реальные проекты и вывод — стоит ли обновляться?

При переходе на новое поколение MacBook я решил провести серию тестов, чтобы оценить изменения именно с точки зрения повседневной работы разработчика.

Надеюсь, это поможет понять, стоит ли обновляться, и насколько четвёртое поколение действительно лучше самого первого чипа Apple Silicon — M1.

Различие в железе

Начнем с простого перечисления технических характеристик, которые изменились:

СвойствоMacBook M1 ProMacBook M4 Pro
Процессор6 произв + 2 энергоэфф10 произв + 4 энергоэфф
GPU14 ядер20 ядер
Шина памяти200 ГБ/с273 ГБ/с
Neural Engineдо 11 TOPSдо 38 TOPS
Аппаратное ускорениеH.264, HEVC, ProRes и ProRes RAWВсе, что в M1 + AV1 + x2 ProRes
Thunderboltверсия 4, 40 Гб/cверсия 5, 120 Гб/c
Bluetooth5.05.3
Wi-Fi6, до 1,146 Гб/c6E, до 1,788 Гб/c
Камера~2,1 МП12 МП Center Stage
SSD, чтение5109 Мб/c7715 Мб/c
SSD, запись3570 Мб/c5107 Мб/с
Картридер, чтение148,4 Мб/с152,2 Мб/с
Картридер, запись89,3 Мб/с90,2 Мб/c

Тест SSD и кардридера проводился с помощью BlackMagic Disk Speed Test. Карта SD Transcend UHS-I (SD 3.0) с заявленным 125 Мб/c на запись и 160 Мб/с на чтение. Похоже, что кардридер не изменился, но я в этом не уверен.

Что действительно оказалось заметным и важным для меня:

  • Разница в производительности CPU и GPU
  • Улучшенная камера с более качественным изображением и режимом «В центре кадра» (Center Stage)
  • Поддержка кодека AV1 и большее количество аппаратных кодеров/декодеров ProRes — при рендере видео прирост производительности хорошо ощущается. Хотя это, скорее, часть общего прироста CPU+GPU

🧐 Thunderbolt 5 — это круто, но пока таких SSD почти нет или они стоят заметно дороже. Реальная польза — в будущем.

🧐 Wi‑Fi 6E может быть полезен, если у вас дома интернет свыше 1 Гб/с. У меня канал 500 Мб/с, и разницы по факту нет. Пока простого Wi-Fi 6 хватает.

🧐 Bluetooth 5.3 якобы надёжнее и энергоэффективнее, но на практике разницу заметить сложно. С наушниками с Bluetooth 5.0/5.3 всё работало стабильно и раньше.

Как проводились тесты

Каждый тест представлял собой компиляцию проекта и запуск тестов. Для повышения точности каждый запуск выполнялся 5 раз, после чего вычислялось среднее время выполнения.

Заранее для каждого проекта были загружены зависимости в кэш (Gradle, Maven, npm), чтобы исключить влияние скачивания на результат.

Большинство тестов вы можете воспроизвести самостоятельно — большинство репозиториев открыты. Я указываю конкретные коммиты, на которых следует запускать тесты, чтобы обеспечить повторяемость условий.

Все тесты проводились при включённом режиме «Максимальная производительность» в настройках питания, устройства были подключены к сети и полностью заряжены (100%).

1 - spring-boot-realworld-example-app

https://github.com/gothinkster/spring-boot-realworld-example-app

Небольшой Spring Boot проект. Требует Java 11 версии, для тестов использовалась версия openjdk 11.0.26.

Получить репозиторий и нужный коммит:

git clone https://github.com/gothinkster/spring-boot-realworld-example-app.git project1
cd project1
git checkout ee17e31

Перед запуском сборки надо инициализировать проект

./gradlew :spotlessApply

Запуск сборки с учетом времени выполнения команды. Первый раз будет долгий запуск, так будут скачиваться все зависимости:

time ./gradlew clean build

Запуск приложения, сборка проекта уже выполнена.

time ./gradlew bootRun

Результаты

КомандаMacBook M1 ProMacBook M4 ProРазница (%)
clean build, с15,547,91−49,1%
bootRun, с5,053,40−32,7%

2 - Traccar - OS GPS Tracking

https://github.com/traccar/traccar

Приложение для GPS трекинга с открытым исходным кодом.

git clone --recursive https://github.com/traccar/traccar.git
git checkout 5d829b46a

Сборка JAR серверной части и тесты, использовалась openjdk 24+37

./gradlew clean assemble

./gradlew clean test

Сборка Web UI:

npm run build

Результаты

КомандаMacBook M1 ProMacBook M4 ProРазница (%)
assemble, с8,955,63-37%
test, с12,608,33-33%
npm run build, с7,474,45-40%

5 - Рабочий проект

Один из микросервисов, над которым я сейчас работаю, к сожалению, не могу показать — исходный код закрыт. Поэтому для тестов я выбрал не слишком большой открытый проект, чтобы можно было сделать больше прогонов.

Общие характеристики:

  • Java 17
  • Spring Boot 3.2
  • Maven
  • Количество строк кода без комментов и пустых строк: 43 967
  • Количество тестов: 923

Запуск компиляции:

time ./mvnw clean compile

time ./mvnw clean test

Результаты

КомандаMacBook M1 ProMacBook M4 ProРазница (%)
compile, с12,537,56-39%
test, с29,7923,62-21%

В тестах много интеграционных проверок с использованием Testcontainers, и, похоже, работа с Docker и сетевое взаимодействие становятся бутылочным горлышком — прирост производительности уже не столь значителен. Для пробы я взял ещё один проект с ~1000 тестами — ситуация повторилась: на M1 Pro — 2 мин 11 сек, на M4 Pro — 1 мин 30 сек, разница составила –31%. Причём в этом проекте большинство тестов — юнит-тесты.

6 - Просто JS проект

Создал пустой проект

npx create-react-app test-build-speed
cd test-build-speed
npm install ajv@8 ajv-keywords@5
time npm run build

Результаты

КомандаMacBook M1 ProMacBook M4 ProРазница (%)
build, с4,801,95-59%

7 - Локальный AI

Использовал:

  • LM Studio 0.3.18
  • Модель Gemma 3 12B 4bit

Модель выбрана так, чтобы помещаться в память M1 Pro с 16 ГБ ОЗУ.

1. Запрос генерации простого кода

Напиши Pojo класс являющимся Value Object. Напиши классы для веса, валюты. Используй Java 17.

M1 Pro

  • 16.23 токенов/сек
  • 1.30 сек. до первого токена

M4 Pro

  • 32.03 токенов/сек
  • 0.33s сек. до первого токена

1.2 Добавлено уточнение

А можешь использовать record

M1 Pro

  • 17.07 токенов/сек
  • 21.40 сек. до первого токена

M4 Pro

  • 31.59 токенов/сек
  • 5.90 сек. до первого токена

2. Проанализируй изображение

Изображения для анализа

Что изображено на изображении?

M1 Pro

  • 18.24 токенов/сек
  • 6.61 сек. до первого токена

M4 Pro

  • 33.10 токенов/сек
  • 2.21 сек. до первого токена

3. Анализ PDF файла

Был выбран файл и запросы суммаризации по нему:

  • 5 основых идей
  • Опиши общую концепцию предложенную в файле

Использовался файл-спецификация JSR-133.

M1 Pro

  • 17.35 токенов/сек
  • 9.73 сек. до первого токена

M4 Pro

  • 31.95 токенов/сек
  • 2.78 сек. до первого токена

8 – Конвертация видео

Сценарий: была записана встреча в Контур Толке, после чего видео конвертировалось для хранения или публикации.

Исходник — видео в h.264 с продолжительностью 1:15:56, записанное во время созвона. Цель — подготовить ролик для загрузки на YouTube в формате 1080p30.

Для конвертации использовался HandBrake версии 1.9.2.

MacBook M1 ProMacBook M4 ProРазница (%)
7м 40с3м 15с-57%

Увеличение количество аппаратных декодера с 1 до 2 дает о себе знать. Обработка более чем в 2 раза быстрее.

9 – Синтетика Cinebench 2024.1.0

Прогнал синтетические тесты, которые максимально могут показать разницу в потенциале процессоров и GPU.

ТестMacBook M1 ProMacBook M4 ProРазница (%)
GPU, pts2 2569 147+305%
CPU Single, pts112172+54%
CPU Multi, pts6301501+138%

10 – Синтетика Geekbench

Использовалась версия 6.4.0

ТестMacBook M1 ProMacBook M4 ProРазница (%)
Single-Core Score2 3063 891+68%
Multi-Core Score9 37122 495+140%

Вывод

Если вы разработчик и у вас появляются мысли: «А пора ли обновляться?»

✅ Обновляйтесь, если:

  • Вы работаете с действительно большими проектами, часто собираете их локально, запускаете и прогоняете тесты. В этом случае прирост производительности будет ощутим: сборка может ускориться на 30–50%.
  • Вы хотите регулярно использовать локальные LLM.
  • Вы не только пишете код, но и работаете с видео или фото — тут прирост особенно заметен.

🛑 M1 и выше всё ещё остаётся отличным выбором, если:

  • Вы в основном работаете в IDE, а сборки и тесты чаще запускаются в CI/CD. Например, если локальный запуск — это боль или требует особой подготовки.
  • Вы не работаете с медиаконтентом, AI и редко собираете контейнеры.
  • У вас нет долгих и ресурсоёмких задач. На коротких дистанциях разницу между поколениями процессоров ощутить непросто.

💡На мой взгляд, вопрос об обновлении MacBook у разработчика чаще стоит не как «Мне не хватает мощности», а как «Мне не хватает оперативной памяти». Вот мои 16 ГБ из 2022 года уже не хватало в 2025-м, так что надеюсь, 48 ГБ хватит надолго.

Создано при помощи Hugo
Тема Stack, дизайн Jimmy