Преимущество в независимости

В последнее время часто слышу жалобы от владельцев смартфонов с полностью многозадачными операционными системами – мол, время автономной работы у новых моделей сократилось до неприличия. Всю ночь заряжаешь, утром уходишь на работу, и уже где-то к 18-19 часам аппарат отключается. Приходится носить с собой зарядник, что, прямо скажем, не очень удобно. А уж где-нибудь в дороге и вовсе тоска: или таскай с собой пару аккумуляторов, или запасной телефон, чтобы было куда в крайнем случае переставить сим-карту.

Я около месяца изучал проблему и пришел к выводу, что она действительно существует :) Причин же возникновения у нее две.

Первая – изменившаяся «структура пользования» устройством и неподготовленность аппаратной части к новым требованиям. Например, если отключить передачу данных и использовать телефон только для звонков, SMS и оффлайновых приложений, время автономной работы многих приятно удивит. Конечно, смартфон не будет работать, как Nokia 1100, неделями, но 2-3 суток гарантированы. А вот пользование мобильным интернетом по EDGE и – особенно! – 3G сажает аккумулятор с дикой скоростью, даже если вы просто проверяете почту и пишете нежные глупости в Twitter. Другой обжора – GPS-навигация, потому что там все в связке: и работа приемника, и скачивание карт с POI, и отправка данных на сервер. Типовой смартфон в таком режиме протянет от силы три часа, а то и меньше. Этим изъяном страдают все смартфонные платформы, представленные сегодня на рынке. В том числе и потому, что изначально они не были заточены под прокачку через себя больших объемов данных от нескольких приложений. Действительно распространенной такая задача стала буквально в последние года два, и, грубо говоря, техника работает во внештатном режиме. Очень хочется верить, что у «атомофонов» такого дисбаланса в энергопотреблении не будет, ведь они изначально придумывались для многозадачного окружения.

Вторая причина – просто катастрофическая неоптимизированность софта. Теоретически, процессоры смартфонов умеют сбрасывать частоту, и под операционными системами, которые можно отнести к условно-многозадачным (iOS, Symbian) они это делают довольно эффективно. Когда же доходит дело до многозадачности настоящей, о полноценном погружении в сон можно забыть. В течение недели собирал статистику по тактовой частоте процессора одного современного смартфона, и с удивлением обнаружил, что на минимальных значениях она находилась чуть больше 6 процентов времени! Тогда как львиную часть времени, 76%, процессор работал на полной скорости. Стал смотреть еще внимательнее. Выяснил, что сбросить обороты ему мешали Twitter-клиент и читалка книг, т.е. приложения, которым и 200 мегагерц – девать некуда. Однако же, «благодаря» нерадивым разработчикам, частота держалась на отметке 768 МГц.

Поставил программную примочку, насильно скидывающую частоту по определенному сценарию – продолжительность автономной работы увеличилась в полтора раза. Нашел прошивку, понижающую напряжение процессора – выиграл еще процентов двадцать. Но все это – чисто хакерские штучки, разбираться в которых человеку нормальному будет непросто. И, главное, не нужно. Логичнее и правильнее самому приложению вести себя прилично и не подминать под себя все ресурсы системы, если в данный момент можно ограничиться их малой толикой. О том, как забороть напасть на ARM, я, честно говоря, не знаю. Но для «атомов» Intel кое- что предлагает.

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

Но если MeeGo и решения на нем уже на старте окажутся раза в полтора энергоэффективнее конкурентов… Было бы интересно тогда послушать скептиков.