Interfaces
6 January 2013

Генератор энтропии Seeder 1.1 существенно уменьшает лаги на Android-устройствах

В старых версиях Android некоторые системные компоненты и JVM активно считывали большие объёмы случайных чисел из псевдоустройства /dev/random. Это устройство предоставляет интерфейс к системному генератору случайных чисел (ГСЧ), который выводит шумы из драйверов устройств и других источников в «хаотичный» пул. На старых версиях Android иногда возникали проблемы с наполнением пула случайных чисел. В случае опустошения пула возникали лаги UI, пока пул не наполнялся. В новых версиях Android проблему с лагами UI решили, но не до конца: всё-таки иногда возникают характерные задержки.

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

Один из разработчиков с форума XDA-Developers перекомпилировал rngd, так что пул случайных чисел каждую 1 секунду пополняется из пула псевдослучайных чисел /dev/urandom. Результат — потрясающее ускорение интерфейса Android с почти полным исчезновением лагов! Chrome, карты и другие тяжеловесные приложения теперь мгновенно переключаются между задачами.

Рендеринг новых фрагментов карт в Google Maps осуществляется мгновенно, по мере прокрутки карты. Отображение рабочего стола тоже стало мгновенным. Если у вас в таких ситуациях случались лаги в 5-10 секунд, то обязательно попробуйте установить эту программку. Один из мейнтейнеров CyanogenMod говорит, что разница в производительности действительно налицо, хотя причины этого непонятны: тесты не показывали истощения пула случайных чисел. «Что происходит? Или мы все тут сумасшедшие, или мы случайно наткнулись на какой-то неуловимый баг в ядре. Нужно дополнительное изучение этой темы», — пишет Стив Кондрик (Steve Kondik), мейнтейнер CyanogenMod.

Seeder-1.1.apk (зеркало)



Копирование псевдослучайных данных из /dev/urandom, теоретически, представляет некоторую угрозу для безопасности, потому что качество случайных чисел там не такое высокое, как в нормальном /dev/random. Но на практике, шансы того, что кто-то применит для атаки эксплойт ГСЧ гораздо меньше, чем вероятность использования уязвимости в ОС.

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

P.S. Кроме бесплатной программы для читателей форума XDA-Developers, автор опубликовал в каталоге Google Play и платную версию программы для «непосвящённых».

+74
135.5k 266
Comments 216
Top of the day