Михаил Овчинников

Macbook Pro 2017

Мой Mac mini служит верой и правдой уже 6 лет, за это время у меня не возникало особых претензий к его производительности, я лишь увеличил размер оперативной памяти до 8 Гб и поменял винчестер на SSD. Несмотря на маленькие размеры, мобильным его не назовешь: нужно таскать с собой монитор, мышку и клавиатуру, поэтому периодически я задумывался о покупке макбука. Окончательным решением в пользу замены компьютера стал анонс macOS Mojave, где было сказано, что отныне поддерживаются только модели начиная с mid-2012 (из-за необходимости наличия видеокарты, совместимой с технологией Metal).

Изначально я рассматривал к покупке модели 2015 года: привычные разъемы и отсутствие проблем с клавиатурой при сопоставимом по качеству железе (и яблочко светится!). На момент написания поста, было реально достать только 15-дюймовую модель, но и это оказалось не так просто: в нескольких магазинах столкнулся с одной и той же ситуацией: заказываешь на сайте (где он якобы в наличии), тебе перезванивает менеджер и говорит: «Мы такую модель больше не возим, хотите подберем аналогичную 2017 года?». Так как я всё равно хотел 13-дюймовую модель, то решил не заниматься ретроградством и приобрел конфигурацию без тачбара с i7 2,5 ГГц, 16 ГБ RAM и 128 ГБ SSD.

Общие впечатления

Комплект как всегда минимален: устройство и зарядка. Провод зарядного устройства в этой модели отсоединяемый, что хорошо: будет легко поменять, если перетрётся. Кабель с двух сторон имеет Type C разъем — удобно, не перепутаешь какой стороной вставлять и несложно искать замену.

Про внешний вид не буду рассказывать, журналисты в многочисленных обзорах уже израсходовали все возможные эпитеты, добавить нечего. Я слишком давно пользуюсь техникой Apple чтобы петь дифирамбы, но не могу не отметить, что строгий минимализм в дизайне очень импонирует. А вот минимализм в плане разъемов вызывает двоякие ощущения.

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

Делая «революционный» шаг с избавлением от мини-джека, они положили в коробку переходник (хотя это и не так нужно), здесь же фактически лишая пользователей прямого доступа к миллионам выпущеных устройств с традиционными USB-разъемами, к мониторам с HDMI, к картам памяти и прочим радостям жизни, нам не дают ответа как с этим жить. Мы всегда ценили компанию за сильную экосистему, но сейчас и она даёт трещины.

Моё решение не отличается оригинальностью: заказал переходник от dodocool и вернул необходимые порты. В какой-то степени это даже удобно: не нужно постоянно втыкать по периметру кучу проводов всех видов и размеров, теперь когда садишься дома за стол достаточно вставить один провод и вперед.

Клавиатура и тачпад

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

Cама же клавиатура удобная, я морально приготовился страдать, но на деле я не чувствую дискомфорта, потому что практически не требуется поднимать пальцы, при этом на нажатие не требуется значительных усилий и печатать получается вроде бы даже быстрее. Я успел напечатать несколько сотен строк кода и не могу сказать ничего негативного.

За тачпад хочется просто обнять инженеров Apple, хоть где-то они смогли сделать все правильно: огромная поверхность, отличная чувствительность, Force Touch (постоянно использую для предпросмотра ссылок в Safari), ни разу даже не возникало мысли подключить мышку.

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

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

Методику измерения придумал не я, а Эш Фюрроу (иногда кажется, что какая бы мысль тебе в голову не пришла, до тебя это уже сделали ребята из Artsy), он изложил её у себя на гитхабе, где заодно и собирает статистику по времени сборки. Суть проста: берем проект Eidolon и засекаем время от нажатия кнопки Run до появления основного экрана приложения (хочу заметить, не сплэш-скрина, а именно первого настоящего экрана приложения). Повторяем это для сборки с нуля и для ребилда. Eidolon — это вполне enterprise-grade приложение с крупной кодовой базой и большим количеством зависимостей, поэтому время, затраченное на его сборку, будет весьма показательно.

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

sudo gem install bundler
xcode-select —install

git clone https://github.com/artsy/eidolon.git
cd eidolon
bundle install
bundle exec fastlane oss

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

Модель Процессор Оперативная память Хранилище Версия Xcode
Mac mini (Mid 2011) 2,5 GHz Intel Core i5 8GB 1333MHz DDR3 256GB SSD 9.4.1
iMac (Retina 5K, 27-inch, 2017) 3,4 GHz Intel Core i5 16GB 2400 MHz DDR4 1TB Fusion Drive 9.3.1
MacBook Pro (13-inch, 2017) 2,5 GHz Intel Core i7 16GB 2133 MHz LPDDR3 128GB SSD 9.4.1

На всех компьютерах стоит High Sierra последней версии. Для тестов был запущен только Xcode, все остальные приложения закрыты. В режиме «холодного старта» симулятор был закрыт, т.е. учитывается время которое требуется на его загрузку. Перед стартом сборки я каждый раз дожидался когда закончится процессинг файлов, так как он вносит слишком большую погрешность в измерения.

Результаты я замерял в секундах и записал в текстовый файл в следующем виде:

#                           Fresh   Incremental
"Mac Mini (mid 2011)"       203     19
"iMac (2017)"               170     23
"MacBook Pro (mid 2017)"    94      10

Чтобы получить график, прогоняем результат через Gnuplot со следующим кодом:

set terminal png size 800,500
set output 'output.png'

red = "#f44336"; 
blue = "#3F51B5";

set style data histogram
set style histogram cluster gap 1
set style fill solid
set boxwidth 0.9

set xtics format ""

set grid ytics
set ylabel "Build time, sec." rotate by 90

plot "data.dat" using 2:xtic(1) title "Fresh Build" linecolor rgb red, \
            '' using 3 title "Incremental Build" linecolor rgb blue

Таким образом, получается что на чистый билд у Mac mini уходит больше 3,5 минут, iMac справляется чуть меньше чем за 3 минуты, а герою сегодняшнего обзора потребовалось всего лишь 1,5 минуты. Результат получился интересным: то что новый ноутбук в 2 раза опережает мой старенький mini меня не удивило, а вот то, что iMac показал такие слабые результаты, вызывает недоумение. Тут конечно много факторов, которые могли повлиять: чуть более старая версия Xcode, Fusion Drive, который все-таки медленнее чем SSD, но все равно это слишком сильное отклонение.

Автономность

Не скажу за всю Одессу, но в моем режиме использования (Xcode, VS Code, Safari, SourceTree, Zeplin, Telegram), ноутбук спокойно держится рабочий день и к вечеру остается процентов 20 заряда. Зарядку с собой я обычно не беру — знаю что хватит. Хотя думаю, если бы я пользовался Chrome, Slack и ещё какими-нибудь приложениями на Electron, то заряд уходил бы гораздо быстрее, но все равно такая автономность не может не радовать.

P.S.

Я устал настраивать каждый раз с нуля свои маки, поэтому взял скрипт laptop от Thoughtbot и адаптировал его под свои нужды, он лежит у меня на GitHub под названием workstation. Делал на скорую руку, чтобы быстро засетапить ноутбук после покупки, потом буду постепенно дорабатывать, если будете использовать, то не стесняйтесь писать в issues и слать pull-request.

По ключевым словам