Спустя почти год ожидания, Apple наконец-то обновили линейку MacBook Pro, одной из главных «фишек» которой стало автоматическое переключение между интегрированным и дискретным видеоадаптером. По мнению Купертино, пользователи получили компьютер, способный работать без подзарядки до 9 часов. Несмотря на то, что автопереключение является неоспоримым улучшение по сравнению со старым ручным методом, многие пользователи заметили — батарея стала разряжаться намного быстрее.

Неожиданные переключения адаптеров

Естественно, первым подозреваемым стала графическая система: пользователи заметили, что приложения могут неожиданно переключить систему с Intel’овской видеокарты, связанной с процессорами Core i5/i7, на NVidia. Понятно дело, когда такие «монстры» как Aperture, iMovie или Photoshop принудительно заставляют систему перейти на использование GT 330M, однако даже некоторые простые приложения включают дискретный GPU, к примеру, такие как Tweetie, Transmit, Skype, NetNewsWire и так далее. Они не так интенсивно работают с графикой, но это именно тот вид приложений, который большинство людей использует практически все время.

Аналогичный эффект вызывают 1Password (сама программа, а не плагин для браузера), аддон GoogleTalk для Firefox, большинство приложений для снятия скриншотов, любая программа из пакета iLife, Coda и Unison от Panic, все программы на X11, продукты VMware и Parallels, Evernote (в режиме сетки), большинство разнообразных IM (но не Adium), Toast Titanium, Front Row и другие медиа-центры и даже такие полезные программы как Drive Genius. К этому списку можно добавить еще все приложения на фреймворке QuickTime 7. А вот использование QuickTime X не будет инициализировать автоматическое переключение видеоадаптеров.

Разработчик Коди Кригер (Cody Krieger) создал удобную утилиту под названием gfxCardStatus , которая отображает в панели меню маленькую буковку «i» или «n», позволяя быстро узнать, с какой видеокартой на данный момент работает ваш MacBook Pro (Intel или NVidia). Но что самое главное — она может указать на приложения, которые приводят к активации дискретной GPU. Используя gfxCardStatus, пользователи на форуме поддержки Apple исписали уже 5 страниц, добавляя туда все новые и новые программы.

Проблема в Core Animation

Проблема такого «неправильного поведения» ПО заключается в широком использовании Core Animation — фреймворка, который повсеместно используется разработчиками для обеспечения разнообразных эффектов в своих приложениях с целью усовершенствования пользовательского интерфейса. Core Animation, наряду с OpenGL, OpenCL, Quartz Composer и Core Graphics, как раз и вызывают автоматическое переключение видеоадаптеров.

Если приложение использует какой-либо из вышеперечисленных фреймворков, то в процессе запуска оно сообщит об этом системе. После чего большинство Маков создадут необходимые хуки для эффектов, которые могут быть ускорены GPU, остальные эффекты обработаются программно. Аналогично, в случае с новыми MacBook Pro, операционная система сама «заставляет» дискретный графический адаптер (который сразу же включится) заниматься ускорением эффектов Core Animation. А как только все приложения, использующие эти фреймворки, закончат свою работу, компьютер плавно переключится к интегрированной графике.

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

Самое интересное, что эти эффекты отлично работали и на более древних графических системах от Intel, к примеру, на GMA950, который стоял в прошлых поколениях MacBook, Mac mini и моем первом Хакинтоше 🙂 Поэтому создается впечатление, что приложения переходят на более мощный GPU без особой надобности. Многие пользователи, купившие новые MacBook Pro, сразу же ожидали автономно проработать за ним полный рабочий день. Представляете их разочарование, когда реальная цифра оказалась в районе 5-6 часов или того менше. Это как минимум 9 страниц обсуждения одного топика на форуме поддержки Apple и бурное обсуждение на бескрайних просторах интернета.

Единственное, что Apple может предложить в данный момент — это опцию в Системных настройках, которая выключит автопереключение.

Контринтуитивность

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

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

Но согласитесь, не очень логично переключаться на дискретный GPU только для того, чтобы получить несколько плавных эффектов анимации в том же самом Tweetie. К тому же, согласно данным Apple, новые MacBook Pro должны работать на дискретной интеловской графике примерно 9 часов в режиме чтения почты, просмотра веба или написания документов. При этом, работая все время на GT 330M в тех же самых задачах, система должна работать порядка 8 часов.

Это означает, что в теории время работы ноутбука с интегрированной видеокартой только на 11% дольше. Именно эти цифры получаются в наилучшем сценарии Apple под названием «тест на производительность при беспроводном подключении», вынесенном на странице в сноску мелким неконтрастным шрифтом. Но наверняка этот лишний час, на самом деле, лишним не был бы 🙂

В сравнении с аккумуляторами последнего поколения MacBook Pro (который остановился на семи часах), новые модели должны обеспечивать 30-процентное увеличение времени автономной работы при аналогичном использовании. Таким образом, используя новый MacBook Pro, вы далеко не всегда сможете получить заявленные 8-9 часов работы. Все что вы теоретически должны увидеть — ноутбук будет работать от аккумулятора на 30% дольше, чем предыдущая модель.

Как тестируют ноутбуки?

Правда, от теоретической производительности пользы мало. Эпловский тест разработан, чтобы получить более-менее достоверные результаты при использовании стандартного пользовательского сценария: сначала в Safari загружается несколько веб-страниц, а затем что-то печатается в текстовый документ. Этот процесс повторяется до тех пор, пока батарея не будет полностью разряжена. Тест проводится с включенным Wi-Fi и выключенным Bluetooth, яркость дисплея установлена на 50%, а все опции Экономии энергии, которые могли бы перевести дисплей в режим сна или замедлить скорость вращения жесткого диска, выключены. Замер времени производится трижды и потом усредняется.

Я уверен, что 99,99% остальных пользователей требуют от компьютера много больше, чем просмотр нескольких веб-страниц и печать текста: они переписываются в IM и Твиттере, общаются по IRC, читают новости по RSS, редактируют графические файлы и так далее. Именно такой сценарий дал бы разработчикам и инженерам Купертино более реальные, приближенные «к боевым», цифры.

Так или иначе, нужно учитывать эту особенность при выборе ноутбука.


Читайте также: