Генератор энтропии 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 и платную версию программы для «непосвящённых».
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 216
    • НЛО прилетело и опубликовало эту надпись здесь
      • –12
        не обязательно UI. В Java любой экземпляр любого класса имеет hashCode, для вычисления которого используется и генератор случайных чисел.

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

        Если посмотреть что внутри, выяснится что генератор случайных чисел очень много где используется, как бы странно это не казалось непрограммистам.
        • НЛО прилетело и опубликовало эту надпись здесь
          • –15
            он может использоваться в зависимости от реализации виртуальной машины, см. ссылку. Хотя может и не использоваться. Как я сказал, генератор случайных чисел используется много где, необязательно в одном месте проблема.
            • НЛО прилетело и опубликовало эту надпись здесь
              • –18
                значит надо лучше искать:

                There's no requirement that hash values be consistent between different Java implementations, or even between different execution runs of the same program, and while two unequal objects having different hashes is very desirable, this is not mandatory (that is, the hash function implemented need not be a perfect

                и далее по ссылкам.

                В любом случае это просто пример применения случайных чисел. Один пример из множества возможных внутри Андроида. Чтоб не удивлялись.
                • +7
                  Вы путаете, во всех примерах просто говорится о том, что сериализовывать значения хеш-кодов — это «айяйяй». При этом случайные числа непосредственно при вычислении хеш-кодов использоваться не могут, иначе бы хеш коды не имели бы смысла.
                  • –33
                    хватит спорить не о чём. По ссылке ясно сказано что в ряде случаев для вычисления хеша используется случайное число (можно опротестовать статью в вики, если уж неймётся). Так это или не так конкретно в Андроиде неизвестно, наряду с этим есть ещё масса вариантов испоьзования случайных чисел и в UI, и в гугловых картах, и в других местах.
                    • +7
                      В вики ничего про случайные числа не написано. Даже сказано наоборот, что никаких случаных вариаций быть не может. Два одинаковых объекта обязаны иметь одинаковый хеш-код.
                      Тут момент принципиальный, потому что случайное число при вычислении хеша — это очень большая глупость и не дай случай кто-нибудь увидит ваш камент и решит что так можно делать.
                      • –52
                        млять, носом тя тыкал, кусок вырезал со ссылкой
                        A perfect hash function for a specific set S that can be evaluated in constant time, and with values in a small range, can be found by a randomized algorithm in a number of operations that is proportional to the size of S
                        Тот же подсоленный хеш встречается часто и всегда различается для одинаковых экземпляров (обычно паролей)
                        нет, млять, одно и то же оффтопить будет.

                        Хватит. Это просто пример чтоб не удивлялись.
                        • +28
                          Во первых — кто вы такой, чтобы грубить тут?
                          Во вторых, подсоленный хеш, равно как и криптографический хеш — это мало относящиеся к get_hash_code() вещи. Хеши, используемые в описанном случае никто никогда не будет делать солеными или криптостойкими.
                          И более того, в цитате написано что идеальная хеш-функция может быть найдена путем рандомизированного алгоритма, а не само хеш-значение.
                          • +3
                            Ну раз вы такой умный, киньте кусочек исходного кода из пакета java.lang, где используется Random в hashCode().

                            А вот второе соглашение функции hashCode()
                            If two objects are equal according to the {code equals(Object)} method, then calling the {code hashCode} method on each of the two objects must produce the same integer result.
                            И как вы себе представляете идентичный хэшкод у разных, но эквивалентных объектов, если предлагаете использовать Random в hashCode()?
                          • +1
                            random ещё не значит «случайный», это может так же значить и «произвольный». «RAM», она же ОЗУ — как раз такой случай. А одно из условий на хэшфункцию что для одного и того же объекта её значение должно быть одинаковым в любые (в английской формулировке можно опять-таки спокойно использовать слово «random») моменты времени. Но это уже тут написали.
                    • +4
                      Поправьте меня, пожалуйста, но я понял этот отрывок так: разумеется, при вычислении хеша никакая монетка не подбрасывается. Но в ходе инициализации виртуальной машины Java, например, или, что менее вероятно, при загрузке соответствующего стандартного класса в процессе конкретной программы, случайным образом выставляются некоторые из констант, использующиеся в хеш-функциях. В течение работы программы они, конечно, не меняются. Но от запуска к запуску могут различаться. «Могут» — значит, стандарты платформы не требуют обратного. Как на деле — who knows.
              • +1
                Именно ГСЧ и используется в HotSpot для вычисления hashCode в первый раз на объекте (см. synchronizer.cpp, стр. 537).
                А какой бы вы предложили вариант для вычисления identityHashCode без ГСЧ?
                Популярное заблуждение — использовать адрес объекта — не подходит по ряду причин: адрес объекта изменяется во время GC, кроме того, выделяемые подряд объекты будут иметь последовательные хеш-коды.
              • +5
                А зачем сохранять скачанные тайлы под случайными именами? Лучше использовать хэш от широты, долготы, зума и версии тайлсета.
                • +1
                  Заминусовали очень правильный комментарий!
                  Если Dalvik VM в качестве Object.hashCode() использует адрес объекта, то всем известный HotSpot совершенно точно для первого вычисления hashCode объекта использует random (см. стр. 537). Далее полученное число сохраняется в заголовке объекта для последующих вызовов hashCode.
                • 0
                  Видимо, имеется ввиду код, который выполняется в UI-потоке. А там уже что хочешь пишут. Правда никак не верится, что лаги интерфейса возникают из-за истощения пула случайных чисел, и этой проблемы не решили раньше. Проверил дату — не, не 1 апреля…
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      Как-то на первом курсе тестировал классический квиксорт (C++), быстрее всего работает, если в качестве граничного элемента выбирать середину, а вызов rand() все несколько замедлял. Это на нормально распределенных числах, на частично упорядоченных не тестировал. Так, к слову, явно не исследование.

                      template <class T> void QuickSort(T x[], long a, long b, bool (*f)(T,T)) 
                      {
                      	long i = a, j = b;
                      	T temp, p = x[b/2];    //выбираем граничный элемент - середину
                      	//p = x[i];            //выбираем первый элемент    (5000000 эл. за 1980 мс)
                      	//p = x[i+rand()%N-i]; //выбираем случайный элемент (5000000 эл. за 2120 мс)
                      	do {
                      		while ( f(x[i],p) ) ++i;
                      		while ( f(p,x[j]) ) --j;
                      		if (i <= j) { temp = x[i]; x[i++] = x[j]; x[j--] = temp; }
                      	} while (i <= j);
                      	if( j > 0 ) QuickSort(x, a, j, f);
                      	if( b > i ) QuickSort(x+i, a, b-i, f);
                      }
                      
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Эти тесты очень просто строятся даже для произвольного детерминированного выбора элемента.
                    • –8
                      Network: FreeNode
                      Main IRC Server: irc.freenode.net
                      Port: 6667
                      Room: #Habra
                      UTF-8

                      irc://irc.freenode.net:6667/habra

                      Заходите в чатик, будем обсуждать!
                    • –9
                      такие фейлы Гугл не красят.
                      • 0
                        410 — Gone
                        Кто успел сказать, залейте, пожалуйста, куда-нибудь в другое место!
                      • +8
                        Статья тянет на первое апреля))
                        • +40
                          Не верится что то. Неужели никто, включая гугл не прогоняли код через профайлер, где такие лаги были бы видны?! Да и выше сказали правильно, зачем UI генератор случайных чисел? Может быть там что то типа :)
                          if model_price<500: ui.makeLag(lag_time=random(1,1000)
                          • +14
                            Вот я быдлокодер, так эффективнее:
                            ui.make_lag(lag_time=random(1,1000-model_price))
                            • +25
                              оптимизировать использование функции lag это… очень тонкое извращение, я бы сказал
                              • +3
                                Создавать лаги тоже нужно уметь :)
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • +8
                                  интуитивный интерфейс, ещё соточку к цене можно накинуть.
                            • +2
                              Эм… они, фактически, заменили /dev/urandom на /dev/random?
                              Так тут и нет ничего удивительного, что псевдослучайный генератор быстрее «менее псевдо» случайного. Хотя, как это касалось графического интерфейса, вообще непонятно, разве что, при безопасном соединении.
                              И интересно, повлияло ли это на приложения, которые (u)random вообще не дёргают.
                              • 0
                                См. ниже habrahabr.ru/post/164881/#comment_5678555 у меня на десктопе разница в 2-5 раз между ними (/dev/random выдает около 3мб в секунду), на телефоне все намного печальнее.
                                • 0
                                  Ого! А что у вас так сильно генерирует сид? У меня за минуту /dev/random выдает меньше полукилобайта на лаптопе, ну а /dev/urandom 12 мегабайт в секунду.
                            • +22
                              Как пишут в обзоре pocket now:
                              But does it work? Ironically, the answer is yes — but probably not for the reason that the developer intended to solve. In our tests Chrome was snappier and Google Maps was much quicker drawing tiles. Why? Probably not because the entropy pool was any quicker, but because the CPU and I/O processes were being “kept hot” by the app constantly updating the system with the new, “less random” bits. In short, the CPU wasn’t returning to a slower speed as frequently, resulting in a faster experience — and shorter battery life.


                              Они сделали этот вывод основываясь на словах:

                              CyanogenMod maintainer chimed in:

                              “IMNSHO the recent entropy pool fad is bull***. The only users of /dev/random are libcrypto (used for cryptographic operations like SSL connections, ssh key generation, and so on), wpa_supplicant/hostapd (to generate WEP/WPA keys while in AP mode), and the libraries that generate random partition IDs when you do an ext2/3/4 format. None of those 3 users are in the path of app execution, so feeding random from urandom does nothing except make random… well… less random.

                              “The only conceivable reason some devices may feel faster is because by constantly polling the PRNG, it keeps the device’s I/O in constant use (which in turn, depending on device, will make the CPU stick to higher clock frequencies to keep up and/or ramp up the IO scheduler).”


                              В кратце: ощущение что всё работает «быстрее» создаётся от того, что телефон не переходит в режимы пониженной производительности (процессор работает на максимальной частоте). И рандом к этому отношения не имеет.
                              • +2
                                Может скажу бред (на самом деле нет), но то, что смартфон не уходит в дипслип, работает на макс. частоте — бред. Ничего такого не наблюдаю. Установлен Seeder посредством раскидывания файлов апдейта для рекавери в папку /system/ с установкой соответствующих прав.
                                В терминале работа отображается.
                                Правда при попытке выключить через терминал все равно отображается статус работы: On. Глюк?
                                • 0
                                  дело не в дипслипе, а в понижении частоты. Если стоит governor в режиме «conservative», то устройство стремиться каждый раз скинуть частоту CPU до минимума (66-133 мгц).
                                  почитать можно например тут:
                                  wiki.archlinux.org/index.php/CPU_Frequency_Scaling#Scaling_governors
                                  • 0
                                    У меня СМ10, управление частотой вшито в «Настройки», показывает низкую почти постоянно.
                                    • 0
                                      HTC Desire, CM 7.2. На рабочем столе установлен виджет, отображающий текущую частоту процессора. Она не перестала понижаться (при бездействии телефона падает до 245MHz).
                                  • 0
                                    Первая мысль была именно такая же. Что просто процу не дает замедлиться, раз делает что-то каждую секунду.
                                    • 0
                                      hmm, у меня вот sony lww с cm10nightly и extended kernel (то, что с андервольтом всего и вся). Поставил в настройках частоту в 1ггц минимальную и максимальную (чтобы не понижалась, значит!) и проверил гугл мэпс с сидером и без сидера. С сидером работает объективно быстрее! Оо
                                    • +28
                                      На мойм андроиде заканчиваются случайные числа?!!! Надо срочно скачать про запас!
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • +3
                                          Купить новый же!
                                          • +7
                                            Пепельница забилась.
                                            • 0
                                              Ну хоть бы одно отрицательное число в этой книжке упомянули. Мне кажется, что ей нельзя доверять.
                                              • 0
                                                Random digits — это цифры, а не числа. Отзывы у книги отличные, поэтому можете не бояться.
                                                • 0
                                                  Я уже предложил своим знакомым издать руссифицированный вариант вскладчину. Думаю, что в нашем издании должно быть на один миллион больше.
                                          • +3
                                            О, да.
                                            lwn.net/Articles/525459/
                                            One thing you should not do is the following:
                                            rngd -r /dev/urandom

                                            Ждём новый CVE-2008-0166, теперь на андроиде.
                                            • +1
                                              Попробовавшие, отзовитесь!
                                              Надеюсь, вы не заняты оживлением брикнувшихся аппаратов :)
                                              • +4
                                                Попробовал на Galaxy SII, визуально ничего не изменилось. Вроде и до этого тормозов не было, чего я полез :) (прям как в анекдоте про медведя, который все равно читать не умел).
                                                Пока оставлю, посмотрим еще.
                                                • 0
                                                  Попробовал. Работает заметно быстрее. Выше в комментариях, есть предположение, что совсем по другой причине. Теперь нужно тестировать время жизни батареи…
                                                  • 0
                                                    Motorola RAZR XT910 4.0 custom rom
                                                    Не заметил преимуществ. Как лагало, так и продолжает
                                                    • 0
                                                      Поставил на китайский планшет Ainol Novo 7 Aurora II, вроде все по прежнему, лагов у меня и до этого особых не было, после установки проги улучшений особых тоже не заметил…
                                                      • 0
                                                        Вчера тестил на дешевом китайском планшете, который у нас продается под брендом roverpad'а — как были подвисания, так и остались.
                                                        • 0
                                                          Nexus S, CM 10.1 особых изменений не заметил. Действительно прога просто будит проц.
                                                          • +1
                                                            Аппарат: LG Optimus Hub (ARMv6), кастомная CM10.
                                                            Субъективно — не изменилось ничего.
                                                            Результаты квадрант-бенчмарка:
                                                            1. Контрольный (до установки Seeder): i.imgur.com/9Yx56.png
                                                            2. После установки при включенном Seeder: i.imgur.com/q3zJ6.png
                                                            3. После установки при отключенном Seeder: i.imgur.com/Q0sZK.png
                                                            Коротко: на моем телефоне Seeder приводит к понижению производительности.
                                                            P. S. Бенчмарк запускался после перезагрузки телефона init-скриптом с предварительным слипом в 120 секунд (дабы успели прогрузиться все приложения и виджеты), то есть влияние внешних факторов уменьшил, насколько было возможно.
                                                            • 0
                                                              P. P. S. Частота процессора на время теста была заморожена на 800 МГц.
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                • 0
                                                                  Еще вчера ответил на этот же вопрос на 4pda :)
                                                                  Без Seeder после ребута 4096, при включении фоновых программ — падает до 300-500 и затем колеблется между 500 и 4096, после включения сидера не падает ниже 3000.
                                                              • +3
                                                                Приятно удивлен, как мой почти умерший Motorolla XT-720 перестал по 10-15 сек. отрисовывать меню с приложениями. Безмерно рад, что моим кирпичом можно снова пользоваться, хотел было выкидывать.
                                                                • 0
                                                                  Старенький Samsung Galaxy S. В последнее время просто измучили постоянные подвисания на 10-15 секунд. После установки подвисания пропали.
                                                                  • 0
                                                                    У меня тоже SGS, но никаких подвисаний нет, и установка программы не привела ни к каким видимым изменениям. Тестировал по-разному, в том числе ставил Check Random Entropy Available, но у меня значение никогда не падало до 0, всегда выше 100.
                                                                    Версия Android 2.3.3, прошивка на основе стоковой, не перепрошивался более 1,5 лет. Правда, пару месяцев назад удалил весь софт, кроме того, которым регулярно пользуюсь, это привело к увеличению свободной оперативной памяти, что положительно сказалось на многозадачности.
                                                                    • 0
                                                                      CM10 вливает новую жизнь в SGS.
                                                                  • 0
                                                                    Нет, правда, сегодня же не первое апреля… ЗАЧЕМ им случайные числа для UI??? Есть кто нибудь на Хабре, кто может внятно ответить на этот вопрос?
                                                                    • 0
                                                                      Ну может ГСЧ нужен для GC или самой Dalvik. Хотя звучит все это довольно странно, если не сказать смешно.
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                        • +2
                                                                          Боги, как тогда решать вопросы коллизий?
                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                          • 0
                                                                            инкрементальный счетчик не подойдет для этого?
                                                                            • +1
                                                                              Вряд ли. Можно выйти за границы типов. Элементы создаются и уничтожаются постоянно, а количество одновременно существующих идентификаторов несравнимо меньше теоретически возможного количества.
                                                                              • +3
                                                                                Если использовать random, то 32 разрядами точно не обойтись, чтобы небыло коллизий, а 64 разряда хватит для любого автоинкремента.
                                                                                • 0
                                                                                  Приложения, как и устройства, могут работать годами не выключаясь. Коллизии можно избежать простой проверкой занятости пида в текущий момент времени и освобождённые идентификаторы вполне могут использоваться вновь. Таким образом, даже теоретического предела по продолжительности работы не будет.
                                                                                  • +1
                                                                                    А смысл делать рандом, огребая проблем с перевыбором id в случае коллизии (а это еще какая проблема, когда пространство значений начнет заполняться) + надо отслеживать какие id живые, какие нет, вести эти таблицы. Это совершенно необоснованная сложность и performance hit, когда 64 битного счетчика хватит за глаза.
                                                                                    • 0
                                                                                      int128. Или int256. Его уж точно хватит на время существования Вселенной:)
                                                                                  • 0
                                                                                    А так?
                                                                                     i = (i + 1) % MAXI
                                                                                    
                                                                                    • +1
                                                                                      Это очень плохой подход, при переполнении может вполне оказаться что один из самых старых айдишников еще жив, и тогда два объекта будут иметь одинаковый id. Отслеживать это и предотвращать — не так тривиально. Поэтому лучше 64bit счетчик.
                                                                                      • 0
                                                                                        угу. Питон говорит, 2 ** 63 / (1000*1000) / 3600 / 24 / 365 / 1000 = 292. Почти триста тысячелетий, считая, что новый id генерируется каждую микро(!)секунду. Без шансов, по-моему.
                                                                                      • 0
                                                                                        Ой. Пошёл посыпать голову пеплом. Я не знаю, что происходит под Java при переполнении интегрального типа. На C такой код будет выглядеть, скорее, как попытка пояснить — переполнение вполне ожидаемое событие. Так-то оно само по модулю тикает, только unsigned ставь.
                                                                                • 0
                                                                                  Может какие то проги используют random для генерации текстур на-лету? Вот вроде бы сейчас модно «шумок» добавлять на гладкие поверхности. Или, как в недавнем посте — бесконечный лабиринт с помощью бэйсика и рандома )

                                                                                  Ерунда правда, но что то другое в голову не приходит.
                                                                                • +5
                                                                                  Я правильно понимаю, что все установившие эту чудо–приблуду теперь вместо «честного» генератора случайных чисел /dev/random получают ещё один быстрый алгоритмический генератор псевдослучайности (каковым является /dev/urandom).

                                                                                  И поскольку алгоритмические генераторы потенциально предсказуемы, с пропатченных таким образом андроидов гораздо менее секьюрно пользоваться тем же https?
                                                                                  • +1
                                                                                    получают ещё один быстрый алгоритмический генератор псевдослучайности

                                                                                    Не «ещё один быстрый», /dev/random начинает работать так же, как и /dev/urandom, поскольку его входной пул теперь никогда не исчерпается.

                                                                                    с пропатченных таким образом андроидов гораздо менее секьюрно пользоваться тем же https

                                                                                    Не «гораздо менее секьюрно», потому что использованные в ядре алгоритмические генераторы всё-таки криптостойкие (на случай сбоев/преднамеренной слабости аппаратных генераторов энтропии).
                                                                                  • +2
                                                                                    Шаманство в канун Рождества какое-то.
                                                                                    • +2
                                                                                      На HTC Desire команда dd if=/dev/random of=/dev/null bs=128 count=1 выдала 82000 байт в секунду, count=10 не дождался выполнения, сбросил через 25 секунд — к тому моменту выдало только 8 байт. Повторный запуск с count=1 тоже не дождался, срубил, опять 8 байт за 30 секунд.

                                                                                      С /dev/urandom постоянно over9000 байт, т.е. если что-то много юзает ГСЧ, то, по крайней мере на desire, прога может немного ускорить.
                                                                                      • –1
                                                                                        Интересно было бы найти программу/патч, которая буфер увеличивает этих самых случайных чисел. А то 128 байт (или сколько там, надо курить, а мне скрипты ваять лень) — при генерации 8 байт в пол минуты — даже не смешно…
                                                                                        • 0
                                                                                          А как проверить? У меня Anroid Terminal говорит что не может писать в /dev/null (рутован 4.0.X)
                                                                                          • 0
                                                                                            у меня работает именно так, как я написал. Эмулятор из комплекта cyanogenmod 7, да и в любом случае /dev/null должен быть доступен за запись… Попробуйте без of=… — тогда в stdout выведет — замусорит, конечно, но понять скорость можно будет.
                                                                                          • 0
                                                                                            Samsung Captivate команда dd if=/dev/random of=/dev/null bs=128 count=11 при первом вызове выдала 85 байт в секунду, передала 481 байт за 5,628 секунд. Следующие вызовы уже показывали скорость 12 байт в секунду.

                                                                                            После небольшого перерыва запустил Оперу и Яндекс.Карты, после этого команда выдала больше 85 байт/секунду, значит запуск этих приложений буфер /dev/random не опустошил. На чём бы ещё проверить?
                                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                              • +15
                                                                                                Отличная идея с тестом, но о нём немного позже.

                                                                                                Опытным путём выяснил, что у меня размер буфера для /dev/random равен где-то 416 байтам. То есть, если буфер полный и из него считать 416 байт, то они возвращаются «мгновенно», всё что больше читается со скоростью примерно 12 байт/с.
                                                                                                Также заметил, что dd по видимому имеет таймаут на чтение блока, если запросить достаточно большой блок, например, размером в 26 байт, и он не будет считан за отведённое время, то возвращаются лишь считанные байты. Например, запрашиваю чтение 20 блоков по 26 байт, реально читается 451 байт вместо 20 * 26 = 520, при этом 16 блоков (416 байт) читаются полностью и 4 частично.
                                                                                                Благодаря этим особенностям можно отслеживать используют ли приложения /dev/random или нет. Если приложение использует /dev/random, то в течении 416 / 12 ~ 34 секунд после активного использования /dev/random его буфер заполнен не полностью, и попытка чтения 16 блоков по 26 байт в течении этого времени вернёт не 16 полных блоков, а меньше, остальные блоки будут прочитаны лишь частично.

                                                                                                Теперь тесты.
                                                                                                Тест 1
                                                                                                Запускаю в фоне чтение большого количества случайных чисел и смотрю как это сказывается на интерфейсе. Выполняю команду:
                                                                                                dd if=/dev/random of=/dev/null bs=1 count=2000
                                                                                                читается 2000 байт, это примерно на (2000 — 416) / 12 ~ 132 секунды.
                                                                                                Проверяю скорость скроллирования в TouchWiz, скорость запуска TitaniumBackup, Opera, Play Store, Evernote, EBookDroid.
                                                                                                Результаты (время считал сам, рассчитывая на сильные тормоза):
                                                                                                TouchWiz — скролл плавный, как и всегда.
                                                                                                Запуск TitaniumBackup ~ 6 секунд, переключаюсь на список приложений и быстро его прокручиваю, есть небольшие остановки во время прокрутки, те самые лаги.
                                                                                                Opera — 8 с.
                                                                                                Play Store — 3 с, при навигации по интерфейсу лагов нет, прокрутка плавная.
                                                                                                Evernote — быстро запустился, прокрутка списка из порядка 900 заметок без лагов.
                                                                                                EBookDroid — 4 с, при запуске сразу открывается небольшой PDF файл.
                                                                                                В терминале скорость копирования командой dd: 24 байта/секунду для первого запуска команды и 17 байт/секунду. Видно, что другие приложения активно случайные числа не использовали, иначе бы скорость копирования в dd была бы ниже 12 байт/с.

                                                                                                Тест 2
                                                                                                Повторяю те же тесты что и 1-м, но без запуска dd в фоне.
                                                                                                TitaniumBackup ~ 4 с, переключаюсь на список приложений и быстро его прокручиваю, есть совсем небольшие остановки во время прокрутки. Вроде бы менее длительные, чем в 1-й раз, но может быть мне так кажется.
                                                                                                Opera — 8 с.
                                                                                                Play Store — 5 с, при навигации по интерфейсу лагов нет, прокрутка плавная.
                                                                                                Evernote — даже не стал проверять, итак быстро работал.
                                                                                                EBookDroid — 5 с, при запуске сразу открывается небольшой PDF файл.

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

                                                                                                Зайдём с другой стороны, если TitaniumBackup активно использует /dev/random при чтении данных о приложениях при скроллировании, то это должно сказаться на количестве данных в буфере. Проверяем:

                                                                                                Тест 3
                                                                                                Проверяю сколько остаётся случайных чисел в буфере /dev/random после запуска приложений. Порядок такой: запускаю приложение, дожидаюсь его запуска, в течении максимум 5 с переключаюсь в терминал и выполняю:
                                                                                                dd if=/dev/random of=/dev/null bs=26 count=16
                                                                                                По выводу оцениваю сколько случайных байт считало приложение.

                                                                                                TitaniumBackup
                                                                                                5+11 records in
                                                                                                5+11 records out
                                                                                                238 bytes transferred in 3.228 secs (73 bytes/sec)

                                                                                                Повторил тест несколько раз, сразу после запуска именно такие показатели (5+11). 5+11 — значит что было скопировано 5 блоков по 26 байт и 11 неполных блоков. Так как было всего передано 238 байт, а 5 * 26 = 130, то остальные 238 — 130 = 108 байт пришлись на 11 неполных блоков, примерно по 9-10 байт в блоке. Полностью скопированные блоки (130 байт) — это те, которые находились в буфере.
                                                                                                В буфере осталось примерно 5 * 26 = 130 байт (+ 12-36 байт уже могло быть возвращено в него системой). Значит приложение при запуске использовало минимум 416 — 130 = 286 случайных байт. Но из-за того, что они были в буфере, на скорости запуска это не сказалось. Попробовал очистить буфер /dev/random, прочитав из него всё содержимое, но скорость запуска почему-то не изменилась.

                                                                                                Opera
                                                                                                16+0 records in
                                                                                                416 bytes transferred

                                                                                                То есть при запуске ГСЧ не использовался.

                                                                                                EBookDroid
                                                                                                11+5 records in
                                                                                                326 bytes transferred in 3.469 secs (93 bytes/sec)

                                                                                                То есть приложение использовало примерно 130 случайных байт. Загружаю при запуске большую PDF: 5+11 records in, то есть случайных чисел использовано ещё больше, но всё равно буфера хватило.

                                                                                                Play Store
                                                                                                8+8 records in
                                                                                                284 bytes transferred in 4.495 secs (63 bytes/sec)


                                                                                                Evernote
                                                                                                5+11 records in
                                                                                                223 bytes transferred in 6.038 secs (36 bytes/sec)


                                                                                                OI Shopping list
                                                                                                Это приложение после последних обновлений начало местами тупить, решил погонять его побольше: создал список покупок, добавил продукты, удалил список, проверил буфер ГСЧ. В результате оказалось, что буфер почти пуст, было менее 3-х свободных блоков, но точные данные не записал.

                                                                                                Root Explorer
                                                                                                1+15 records in
                                                                                                163 bytes transferred in 9.562 secs (17 bytes/sec)

                                                                                                То есть при запуске буфер был полностью опустошен.
                                                                                                Проверил запуск приложения с заполненным буфером /dev/random и опустошённым, в обоих случаях Root Explorer запускается за 3 секунды.

                                                                                                Выводы из теста (актуально для моего телефона, с буфером ~400 байт и скоростью его наполнения 12 байт/с): теоретически, эффект от Seeder будет на приложениях, активно использующих ГСЧ или читающих существенно больше размера буфера за короткий промежуток времени. У себя я таких приложений почти не выявил, большинство читало за раз менее 416 байт, только Root Explorer и OI Shopping List читали больше. Но опять же для Root Explorer не увидел никакой разницы в скорости запуска в случаях заполненного буфера ГСЧ и опустошённого. Значит для меня скорее всего приложение окажется бесполезно, но может оказаться полезным тем, у кого небольшой буфер /dev/random или низкая скорость его наполнения.

                                                                                                Тест 4
                                                                                                Установил Seeder, погонял все те же приложения, но какого-то ускорения не заметил. Единственное, вроде бы перестал сильно тупить OI Shopping List, но это может быть эффект плацебо, потестирую его в течении следующей недели.
                                                                                                • 0
                                                                                                  Блин, Вам надо было уже топик писать!
                                                                                                  Но вообще я сильно удивлен, что так много приложений ГСЧ используют…
                                                                                                  • 0
                                                                                                    Очень странно. Если разработчики VM говорят, что /dev/random не используется, а у сторонних программ нет к нему доступа в обход VM, то как тогда они опустошают буфер? Или все эти программы требуют рута, и сами лезут куда хотят?
                                                                                                    • 0
                                                                                                      Наверное, приложение само или через VM пользуется системными сервисами, которые обращаются к ГСЧ. Например, приложение имеет права на включение/выключение Wi-Fi, при включении будет обращение к ГСЧ, но при этом ни само приложение, ни VM к ГСЧ обращаться не будут, это сделает драйвер Wi-Fi.
                                                                                                      • 0
                                                                                                        я вас возможно удивлю, но не только при включении, а и при работе — например шифровании WPA2, я уж не говорю про https и т.д.
                                                                                              • 0
                                                                                                Попробуйте по wifi с wpa и по https что-нибудь, открывающее много соединений. ну и да, dd в фоне оставьте.
                                                                                                • 0
                                                                                                  Что-то ничего в голову не приходит. Может быть подскажете юзкейс?
                                                                                                  Выше ответил про отзывчивость приложений, обратите внимание на Root Explorer, хоть при его запуске активно используется ГСЧ, но dd в фоне на скорость запуска не влияет.
                                                                                                  • 0
                                                                                                    Выключил, включил Wi-Fi, сразу после этого выполнил:
                                                                                                    # dd if=/dev/random of=/dev/null bs=26 count=16
                                                                                                    0+16 records in
                                                                                                    0+16 records out
                                                                                                    140 bytes transferred in 7.447 secs (18 bytes/sec)

                                                                                                    То есть видно, что буфер /dev/random был исчёрпан.
                                                                                                    Но в таком же тесте команда watch -n 1 cat /proc/sys/kernel/random/entropy_avail стабильно показывала значения из диапазона 120-140.

                                                                                                    При этом не вижу разницы в скорости установки Wi-Fi соединения при включённом и отключённом Seeder.
                                                                                                    • 0
                                                                                                      entropy_avail не отображает сколько байт ожидается на чтение.
                                                                                                      к примеру — ты пытаешься прочитать 24 байта — а в настоящий момент есть только 16. entropy_avail будет 16. когда оно станет 24 то чтение завершится и entropy_avail изменится
                                                                                              • +4
                                                                                                Sony Xperia Pro (Android 4.0.4) субъективно стал заметно плавнее. Но самое забавное, что HTC Desire Z, прошитый на Ice Cream SENSEwich 2.0 (Android 4.0.4, HTC Sense 4.1), который неимоверно тупил, как думалось — из-за объема памяти, стал просто летать. Теперь Paranoic Mode = On, оказывается, не надо приобретать флагман, для того чтобы получить одну из последних версий ОС, т.к., оказывается, быстрый Android ≠ мощное железо.
                                                                                                • 0
                                                                                                  Хм, неужели это позволило Desire Z наконец приемлемо работать на прошивках с ICS? Сколько раз ни ставил, постоянные тормоза заставляли с сожалением вернуться на 2.3.
                                                                                                  • 0
                                                                                                    Хм, сижу с ICS на desire (bravo) и пока на лаги не жаловался. Хотя вполне вероятно, что я просто терпеливый.
                                                                                                    • 0
                                                                                                      Может быть. Я давно убедился, что подобные впечатления сугубо субъективны. Я вот уже через неделю после установки ICS/JB начинаю на стену лезть — настолько все тормозит…

                                                                                                      Вот как раз сейчас делаю бекап и буду пробовать в очередной раз — вдруг с этим патчем произойдет чудо.
                                                                                                      • 0
                                                                                                        Извиняюсь за оффтопик, но никому случайно не нужен аккумулятор для Desire Z? Даром и в спб.
                                                                                                    • 0
                                                                                                      Странно, мне наоборот показалось что с с Sense 4 и ICS все просто летает.
                                                                                                  • –2
                                                                                                    Тут нечему удивляться!!!
                                                                                                    Даю зуб на отсечение что 5~10 процентов от общего кода бажны.
                                                                                                    Вот только это, сразу не увидят.
                                                                                                    Чем быстрее система, тем больше в суме используется технологий, тем и сложнее ее код для анализа.
                                                                                                    А уж про профилирования сложных систем я молчу.

                                                                                                    GetTickCount ))

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

                                                                                                    Год
                                                                                                    Версия
                                                                                                    Cтрок кода

                                                                                                    1991
                                                                                                    Ядро Linux 0.1
                                                                                                    10 239

                                                                                                    1994
                                                                                                    Ядро Linux 1.0.0
                                                                                                    176 250

                                                                                                    1995
                                                                                                    Ядро Linux 1.2.0
                                                                                                    310 950

                                                                                                    1996
                                                                                                    Ядро Linux 2.0.0
                                                                                                    777 956

                                                                                                    1999
                                                                                                    Ядро Linux 2.2.0
                                                                                                    1 800 847

                                                                                                    2001
                                                                                                    Ядро Linux 2.4.0
                                                                                                    3 377 902

                                                                                                    2003
                                                                                                    Ядро Linux 2.6.0
                                                                                                    5 929 913

                                                                                                    2009
                                                                                                    Ядро Linux 2.6.32
                                                                                                    12 606 910[5]

                                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                      • 0
                                                                                                        Я, кстати, на это с неделю назад и попался.
                                                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                          • 0
                                                                                                            Откройте для себя navigon
                                                                                                      • +3
                                                                                                        Подозрительно это все
                                                                                                        • +2
                                                                                                          Ап, неизвестно кто, под предлогом «ускорения android» предлагает тысячам людей поставить какой-то левый генератор случайности. Там, во-первых, черти что может быть само по себе напихано, трояны, вирусы etc, а во-вторых, генератор случайности может быть подтасован, чтобы автор мог расшифровать то, что шифруется на этом смартфоне. А главное — массовость.
                                                                                                          • +1
                                                                                                            А еще оно работает только в рутованных телефонах
                                                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                            • +11
                                                                                                          • 0
                                                                                                            Поставил на Samsung Galaxy GIO. будм тестировать. субъективно шустрее
                                                                                                            • 0
                                                                                                              Motorola Milestone — с уверенностью сказать не могу, но вроде поживее все стало. Особенно гугловские карты.
                                                                                                              • +5
                                                                                                                Подтянулись разработчики Dalvik — все, как один утверждают, что в системах новее gingerbread (более ранние исходники не проверялись) все и так правильно работает — используется dev/urandom. Говорят, что в коде VM и библиотеках нет обращений к dev/random. Говорят, что это «очень плохая идея». А ускорение получается из-за периодического дёрганья I/O и часов, что мешает управлению частотой процессора.
                                                                                                                Короче вот — читайте.
                                                                                                                Всё это профанация и какая-то шутка. А может быть и злой умысел. (чёрт его знает, сколько уже заработал автор и что там в коде).
                                                                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                  • +1
                                                                                                                    Я именно на это и намекаю. И даже если сейчас все разумные люди перестанут это чудо ставить, то ещё пол года будут ходить легенды о «чудо программе» среди несколько менее продвинутых пользователей и, сдаётся мне, что автор свои $100k заработает.
                                                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                      • 0
                                                                                                                        lambgx02, перелогиньтесь)))
                                                                                                                        • +1
                                                                                                                          Н-да…
                                                                                                                          Сколько батарея живёт?
                                                                                                                          • –1
                                                                                                                            Просто если идея верна — то же самое можно достичь просто поставив perfomance-режим процессора.
                                                                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                              • 0
                                                                                                                                Управление потребление и пи включенном экране работает, вообще-то. Нужно смотреть работает ли управление частотой процессора.
                                                                                                                    • 0
                                                                                                                      Ради тестинга поставил сабж на HTC Hero с CM6 — субъективно интерфейс стал плавнее и шустрее работать.
                                                                                                                      • +26
                                                                                                                        Охрененная прога.
                                                                                                                        Мой андроид стал работать намного быстрее… фактически я теперь не успеваю за интерфейсом…
                                                                                                                        А еще улучшилось настроение, волосы стали более шелковистые, помирился с тещей.

                                                                                                                        Купил 2 штуки. Про запас. Мало ли…
                                                                                                                        • –6
                                                                                                                          Не к месту Ваш сарказм, утилита правда помогает.
                                                                                                                          • +1
                                                                                                                            Блин! Вы с ней хотя бы неделю походите, а уже потом говорите. Такое чудо сотворить не сложно. Но оно же, судя по комментариям разработчиков, просто повышает расход батареи. Поставьте себе какой-нибудь SetCPU, задерите частоты и тоже все летать будет. Только батарея значительно быстрее разряжаться будет.
                                                                                                                            • –9
                                                                                                                              Оно не может «просто повышать расход батареи». Оно что-то делает, что дает уменьшение задержки и расход батареи. Я не говорю о том, что именно пополнение пула улучшает работу, но ведь что-то улучшает и отрицать это бессмысленно.
                                                                                                                              • +1
                                                                                                                                Что за чушь? Оно не даёт процессору снижать частоту и не даёт периферии отключаться (по словам разработчиков адроида, которым есть все основания верить). Ясен перец, что это повышает отзывчивость системы ценой большего расхода батареи. Того же эффекта можно добиться иным путём, без танцев с ГСЧ. Берите SetCPU, запрещается снижать частоту при включённом экране и радуйтесь
                                                                                                                                • +3
                                                                                                                                  А какого оно вообще её пытается снижать, когда у человека тормозит все? Или скрол карты вторичная функция для гугл-карт и они предназначены для совсем другого?
                                                                                                                                  • +3
                                                                                                                                    Ставьте SetCPU и делайте тюнинг системы, как душе угодно. Я себе понизил частоту при отключенном экране и уменьшение частоты при разряде батареи — могу похвастаться пятью-шестью днями жизни от одной зарядки. Кому-то важнее плавность и красота интерфейса неописуемая, кому-то — время работы батареи. Универсального решения быть не может. Если бы убрали «тормоза», то нашлись бы недовольные временем жизни батареи и об очередной чудо-программе писали бы «Чуваки! Она круто продлевает жизнь батареи за счёт почти незаметного замедления некоторых программ! Нас обманывают!».
                                                                                                                                    В любом случае генераторы случайных чисел тут ни при чём, и всё это дурно пахнет — есть другие, корректные, способы добиться того же результата.
                                                                                                                                    • 0
                                                                                                                                      Да убрал я этот софт с аппарата. Но частоту то я и так задрал давно уже, телефон я подзарядить найду где. Осталось только тюнить в режимах не требующих овертюна. Воспользуюсь рекомендованной программой.

                                                                                                                                      Сейчас проверил без Seeder — все тоже самое. Возможно моё ковыряние системы на днях так проявилось. Может очередной апдейт гуглокарт поправил ситуацию. Желания их запускать у меня не было именно по причине диких тормозов в первые минуты работы. Благо есть на аппарате пара вполне заменяющих GPS систем.
                                                                                                                                  • –1
                                                                                                                                    Что за вздор! Дает она ему снижать частоту, точнее, про нее тут говорить не сосем корректно.
                                                                                                                                    И я как-то больше доверяю своим наблюдениям, чем разработчикам андроида, которые не могут пофиксить множащийся kworker на ICS.
                                                                                                                          • +6
                                                                                                                            Как эта ересь набрала 47 плюсов?
                                                                                                                            • +10
                                                                                                                              Да, какое-то массовое помешательство. Все зачем-то бездумно ставят платную версию, какую-то хрень с форума. Массово брызжут кипятком. И также массово игнорируют заявления от автором андроида о том, что это. чушь, и что ни VM, ни GUI не используют dev/random, а пользовательский софт вообще не имеет доступа к этому пути. И вообще, всем плевать на исходники, в которых этот пусть ВООБЩЕ не встречается.
                                                                                                                              Какие-то удивительные люди, рассказывающие о чудесном приросте скорости, но даже не погонявшие программу пару суток, чтобы посмотреть на расход батареи.
                                                                                                                              Ей богу — вирусная реклама и кто-то обогатиться на сотню штук баксов. А что — десяток активных друзей и всё — волна пошла.
                                                                                                                              • +1
                                                                                                                                Ну почему помешательство. Какой русский не любит быстрой езды?
                                                                                                                                Проблема, видно, остра, вот и весь секрет.
                                                                                                                                • 0
                                                                                                                                  я не пойму почему Вы брызжите слюной?
                                                                                                                                  Программа ускоряет работу интерфейса и некоторых программ, многие это репортят и я тоже. дрейна я не вижу, переключил говернор из режима ondemand на powersave, интерфейс не лагает (раньше в таком режиме умирал). Если бы Вы потрудились почитать ветки на XDA и на code.google Вы бы обнаружили что никто не понимает почему оно так работает, но оно работает. И люди ищут баг в кернеле или еще где-то.
                                                                                                                                  • +8
                                                                                                                                    А Вам не кажется, странным, что в режиме powersave интерфейс не лагает? Вообще-то это как раз и говорит и том, что управления потреблением не работает. А дрейна так сразу и не будет видно. Вы попользуйтесь неделю. И даже потом можете увидеть только +20..30%. Но потом запустите какой-нибудь навител и с удивлением обнаружите, что вместо трёх-шести часов, он час-два работает.
                                                                                                                                    А брызжу по той причине, что некто что-то сам себе придумал. Это что-то даже на первый взгляд выглядит бредово. Оно не подтверждается ни разработчиками системы, ни тестами (даже здесь на хабре в обсуждении есть очевидные опjрвержения этой бредовой идее об использовании dev/random GUI). Более того, люди, которым однозначно стоило бы верить в этой ситуации — разработчики VM говорят, что данное приложение не стоит использовать. Но тем не менее люди покупают его (?!) и массово ставят, не смотря на то, что оно затрагивает базовую функционалность системы — ГСН и вообще не понятно, что делает). Это выше моего понимания.
                                                                                                                                    А больше всго удивляет эта странная волна рекламы — «я поставил и у меня прошёл геморрой». Проснитесь! Во-первых, данного эффекта (ошибки с ГСН) не имеет места быть. Во-вторых, есть весьма авторитетные сведения о том, что это приложение не стоит использовать (от разработчиков VM). В-третьих, это вообще непонятно и оно требует рута — вы уверены, что оно завтра не сольёт все ваши данные или не начнёт рассылать платные СМС? В-четвёртых, кто-нибдуь вдумчиво читал отзывы? Из врождённой вредности и злорадства я даже не буду говорить в чём дело, но наводящий вопрос — почему автор судорожно клепает версии и с чем связаны негативные отзывы? И в-пятых, сугубо здравый смысл — оно работает совсем не так как заявляется, поставьте старый добрый SetCPU и радуйтесь, зачем ставить ЭТО?! И в-шестых, количество положительных отзывов пока как минимум меньше количества нейтральных или негативных, но тем не менее каждый верит в чудо.
                                                                                                                                    Короче, несколько раздражает этот эффект толпы, когда люди поддаются какому-то, не побоюсь, психозу и ставит сырое непроверенное приложение, взывающее более чем здоровый скептицизм со стороны разбирающихся в этом вопросе людей.
                                                                                                                                    • –4
                                                                                                                                      Милейший, мне вот интересно, как приложение будет рассылать платные СМС, если у него на это не прописаны разрешения?
                                                                                                                                      Вот вы доказываете, а в Маркете разрешения прочитать не удосужились.
                                                                                                                                      Или я чего-то не знаю и вся система разрешений идет крахом?
                                                                                                                                      • +10
                                                                                                                                        Оно требует рута, то есть теоретически может все.
                                                                                                                                      • +3
                                                                                                                                        Я почитал кучку форумов на тему поста и опечален количеством пустых комментов на хабре.
                                                                                                                                        Потому что мое краткое исследование на тему говорит, что эффект ИМЕЕТ МЕСТО. Даже когда без указанной проги меняют /dev/random линком на /dev/urandom.

                                                                                                                                        И вот тут уже непонятной программой и желанием обогатиться ее автора не объяснишь.

                                                                                                                                        Да, непонятно при чем ГС(П)Ч. Но факты есть, судя по всему — пока необъяснимые. И весь этот скепсис и хиханьки в комментах резко становятся неуместными. Айтишный ресурс, блин.
                                                                                                                                        • 0
                                                                                                                                          Эффект несомненно быть. Например., в программах использующих шифрование, или активно создающих https/wifi соединения. Эти вещи действительно могут использовать генератор случайных чисел. Но, блин, это не повод ставить под рутом непонятную программу, имеющую кучу побочных эффектов (глюки с частотой процессора и засыпанием устройства. Да ещё и покупать её.
                                                                                                                                          • 0
                                                                                                                                            Речь идет об эффекте увеличения отзывчивости интерфейса программ, ГСЧ не использующих.
                                                                                                                                            И проверить это можно без покупки и установки программы.
                                                                                                                                            И да, это на момент написания мной предыдущего коммента никем объяснено не было.
                                                                                                                                    • +1
                                                                                                                                      Я вот тоже скептически отношусь к чудесным приростам производительности, но тесты показали, что обращения к /dev/random всё же есть. Тем не менее я не увидел, чтобы активное использование /dev/random как-то отрицательно влияло на другие приложения.
                                                                                                                                  • +3
                                                                                                                                    Люди! Окститесь! Вы офигетельно тестирует генераторы случайный чисел и спорите об их эффективности, но НИКТО ещё не показал, что обычный софт приводит к опустошению очереди генератора! И, что система вообще использует этот генератор! О чём вы спорите!
                                                                                                                                    • 0
                                                                                                                                      И время как удачно выбрано-то. Круче было бы только перед Рождеством, но тогда в суете новость могла и незамеченной пройти.
                                                                                                                                      • –1
                                                                                                                                        Ну отчего же, выше товарищ даже не поленился сделать эти самые тесты.
                                                                                                                                      • +22
                                                                                                                                        Офигеть! Первая в истории плацебо-программа для андроида.
                                                                                                                                        • +1
                                                                                                                                          Скоро на Радио России будут будущим бабушкам втирать не лекарства от боли суставов, а ускоряющие скорость их девайсов аппликухи.
                                                                                                                                          • 0
                                                                                                                                            Ну, сударь, далеко не первая.
                                                                                                                                            • 0
                                                                                                                                              Почему сразу так бескомпромиссно? На том же 4PDA результаты неоднозначные. И если это и плацебо, то действует оно за счет уверенности, что разработчики Android вполне могли налажать :)

                                                                                                                                              По сути уже предлагают собрать похожее самим, да еще можно попросить кого-то из уважаемых разработчиков с большим парком андроид-устройств протестить на разных девайсах. Да хоть на видео снять.
                                                                                                                                            • +1
                                                                                                                                              Выдержка из man:

                                                                                                                                              Since reads from /dev/random may block, users will usu‐
                                                                                                                                              ally want to open it in nonblocking mode (or perform a read with
                                                                                                                                              timeout), and provide some sort of user notification if the
                                                                                                                                              desired entropy is not immediately available.


                                                                                                                                              Всё дело в том, что /dev/random может и блокирует всё остальное. Для обхода этого был придуман urandom, который не блокирует.
                                                                                                                                              • 0
                                                                                                                                                Ализар, такой ализарный!
                                                                                                                                                • +1
                                                                                                                                                  Есть приложение для проверки текущего состояния рандома play.google.com/store/apps/details?id=com.promethylhosting.checkrandentropyavail После установки Seeder у меня например (LG Optimus Hub) значение редко проседает ниже 1000, без Seeder прыгает между 200-500 при работе тяжелых приложений. Уж не знаю, как оно работает, но это точно не плацебо и визуальный эффект заметен на моем далеко не самом быстром телефоне? как минимум разблокировка и отрисовка некоторых приложений ускорилась
                                                                                                                                                  • +4
                                                                                                                                                    Почти с тем же успехом можно выставить CPU governor в Performance — тоже UI «летает»
                                                                                                                                                    • 0
                                                                                                                                                      С тем же да не с тем же. Ваша фраза вида: «Почти с тем же успехом можно купить флагман этого года — тоже UI «летает»
                                                                                                                                                      • +1
                                                                                                                                                        Я предложил абсолютно бесплатное решение тормозов в стиле приложения из поста. Собственно этот «ускоряющий» софт как раз таки и делает UI быстрее из-за того что дёргает I/O что предположительно вызывает подъём частоты процессора(кстати собираюсь проверить так ли это)

                                                                                                                                                        Вы же предполагаете что это идентично покупке флагмана — где логика?
                                                                                                                                                        • +1
                                                                                                                                                          Тут habrahabr.ru/post/164881/#comment_5682287 уже есть подтверждение того, что частота перестала снижаться после установки чудо Seeder'а.
                                                                                                                                                          Так что чтобы добиться повышения производительности достаточно, как ни странно, увеличить минимальную частоту процессора.
                                                                                                                                                          • 0
                                                                                                                                                            Там как раз про то, что она НЕ перестала снижаться, 245 — минимальная частота на desire, дальше только deep sleep
                                                                                                                                                    • 0
                                                                                                                                                      Samsung galaxy nexus 4.1.1 в мапс никакой разницы не увидел
                                                                                                                                                      • +1
                                                                                                                                                        При установленном генераторе энтропии аккумулятора на SGS3 хватает теперь почти на неделю, даже если все время включен NFS или другое ресурсоемкое приложение! Из минусов — заметил, что зум на камере телефона стал где-то х430, видны бактерии, но нечетко. Как правильно настроить фокус при таком приближении?
                                                                                                                                                        • +2
                                                                                                                                                          Это нормально. Просто бактерии дрожат от страха и визуально расплываются.
                                                                                                                                                        • +6
                                                                                                                                                          Это баг не андроида а матрицы где мы все существуем — приблуда просто повышает в матрице энтропию и начинаются тормоза рендеринга бытия, но поскольку рендеринг мобил работает на фиксированной скорости, нам кажется что они работают быстрее.

                                                                                                                                                          Вот и баг есть — code.google.com/p/android/issues/detail?id=42265. Поскольку никто из девелоперов не сообразил что надобы на гуглодоках собрать версии ядер, прошивок, железяк\проца (в частности WiFi — а возможно и AP), запущенного софта — а некоторые так прямо говорят что раз на моем девайсе с фиг знает какой прошивкой все без изменений то бага нету — то это 100% матрица пытается защититься.
                                                                                                                                                          • 0
                                                                                                                                                            А Вы обсуждение этого бага почитайте. Там и об этой программе вспоминают. И именно там разработчики VM высказывают своё мнение по поводу этой программы.