~ Продать MacBook Pro, которому уже перевалило за 3 года
~ Сменить 13'' экран на парочку 22'' и повысить комфорт разработки
~ Получить мощную машину для быстрой компиляции проектов на Swift
Это основные причины, повлиявшие на покупку Mac Mini. Первые два пункта достаточно очевидны, но вот к последнему пункту явно нужны комментарии...
Предисловие
У меня был MacBook Pro 13'' (Mid 2014) с самым мощным процессором в своей линейке (i7-4578U) и 8 GB оперативной памяти. Износ аккумулятора был примерно 1400 циклов и зарядное устройство доживало свои последние дни. Менять батарею и покупать зарядное обошлось бы в 22000₽ у "офицалов" или от 6000₽ в других местах. Но стоило ли продлять жизнь аппарату, который уже не устраивает по производительности?!
За последний год особенно остро встал вопрос скорости компиляции проектов на Swift. Как и многие, я задавался вопросом ускорения компиляции и читал различные материалы на эту тему. Вот, например, полезный скрипт, которым время от времени пользуюсь для поиска "медленных" функций:
xcodebuild -workspace NAME.xcworkspace -scheme NAME -sdk iphonesimulator -arch x86_64 -configuration Debug clean build OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-function-bodies" | grep '^[0-9]\{3,20\}.[0-9]\{1,20\}ms'
Но, несмотря на удачные решения по оптимизации, производительности MacBook не хватало для шустрой сборки проектов.
Оценка производительности
Первым делом следовало разобраться — а что конкретно требуется от компьютера, чтобы он быстро собирал проекты. Интуитивно я понимал, что основная нагрузка ложится на процессор, но полноценные исследования провести все не хватало времени. Пару раз сравнил время компиляции одного и того же проекта на MacBook Pro 15'' (Mid 2015) с процессором (i7-4770HQ) и на моём ноутбуке. Разница была очевидной — практически в 2 раза быстрее справлялся с задачей MacBook Pro 15'' (Mid 2015). Тогда и заметил, что есть зависимость между временем компиляции и оценкой производительности процессора по версии cpubenchmark.net.
Еще больше подтверждений данной зависимости нашел, когда наткнулся на репозиторий, где люди на одном и том же проекте тестировали время сборки и публиковали результаты.
Mac Mini
Все в той же таблице я и обнаружил Mac Mini (Late 2012), который находился среди лидеров. Мне показалось это явление странным, ведь я неоднократно проверял характеристики самого свежего Mac Mini (Late 2014) и показатели его производительности не были впечатляющими.
Как оказалось, у модели 2012 года было все в порядке с производительностью. 4-х ядерный процессор не оставлял шансов 2-х ядерному процессору модели 2014 года. Помимо достойного процессора, этот аппарат еще допускает замену / расширение памяти. Поэтому, must have набор 16 GB RAM + SSD воткнуть получится.
Покупка / продажа
Все происходило через аукцион. От момента зарождения идеи до полной ее реализации прошло всего несколько дней. Удалось разменять старый ноутбук на интересующий комплект без каких-то особых доплат.
Продажа MacBook Pro 13'' (Mid 2014) ≈ 50000₽
Покупка Mac Mini MD388 + Клавиатура + Трэкпад ≈ 25000₽
Покупка 2 x 8 GB RAM Kingston KVR16S11/8 ≈ 10000₽ (Новое)
Покупка 2 x Монитор HP 22w + кронштейн ≈ 15000₽ (Новое)
За сумму ≈ 50000₽ что-то подобное по производительности найти сложно (если вообще возможно). Альтернативой может оказаться Hackintosh, подход к сборке которого достаточно доступно описан в публикации. Однако, в публикации сборка сравнивается с крайне слабым Mac Mini (Mid 2011) c процессором i5-2415M, который покупать для разработки я бы не рекомендовал. Вот если бы сравнили сборку с Mac Mini (Late 2012) с процессором i7-3720QM, то результаты не были бы столь убедительными.
Во время проверки Mac Mini использовал команду для терминала, которая выводит модель процессора, например: Intel® Core(TM) i7-3615QM CPU @ 2.30GHz. Ведь целью было приобретение именно 4-х ядерного аппарата и данная проверка давала хоть какую-то дополнительную уверенность при покупке с рук.
sysctl -n machdep.cpu.brand_string
Очень долго не мог решиться какую оперативную память покупать. Существуют модели, которые разные фирмы делают специально для техники Apple, но они дороже и ждать долго пока их доставят. Выбор модулей памяти Kingston KVR16S11/8 был основан исключительно на отзывах людей с маркета. Им огромное спасибо!
Я так и не разобрался, сможет ли этот Mac Mini адекватно выводить картинку на два монитора с разрешением превышающим Full HD. Поэтому не стал рисковать и взял мониторы именно с Full HD.
Результаты
После смены старого MacBook Pro на еще более древний Mac Mini, объем оперативной памяти увеличился с 8 GB до 16 GB и маленький 13'' экран сменился на два 22''. Осталось разобраться с производительностью.
Предварительно, перед продажей MacBook, было измерено время сборки на одном из проектов: 115 сек, 110 сек, 112 сек. Средний результат получился 112 сек. Условия сборки проекта были всегда точно соблюдены: открыт только Xcode, очистка (clean), ожидание индексации, сборка (build). Результаты Mac Mini подтвердили предположения о зависимости оценки производительности процессора и времени компиляции: 75 сек, 70 сек, 70 сек. Средний результат 72 сек.
Заключение
Приобретением доволен, все ожидания оправдались. Процессор действительно играет очень важную роль и старые 4-х ядерные оказываются производительнее, чем свежие 2-х ядерные. Не удивлюсь, если MacBook Pro 13'' (Mid 2017) в максимальной комплектации будет собирать проекты медленнее, чем приобретенный мной Mac Mini.
… осталось привыкнуть к отсутствию мобильности и свободы, которую предоставлял ноутбук.