dront78 17.01.2013 15:29

Tips & tricksЛетающая жаба

Оказалось Java активно использует /dev/random
1
2
3
pacman -S rng-tools
systemctl enable rngd.service
systemctl start rngd.service


о чудо
Eclipse не тормозит (ну почти)
ssh хендшейки работают мнговенно (не совсем в тему, но все же)
Android лапочка просто ожил на древнем телефоне
люди еще много чего пишут

по мотивам сказок Братьев Гримм, для тех кто не читал)

ЗЫ: осталось добавить /etc/environment

_JAVA_OPTIONS="-XX:+UseParallelGC -XX:hashCode=5 -Xverify:none -Djava.net.preferIPv4Stack=true"

UPD: за -XX:hashCode спасибо @blackraven только не уверен, что оно работает)


Тэги: entropy generator Java speedup
+ 2 -
Похожие Поделиться

All4DK 17.01.2013 17:19 #
А можно подробнее описать всю эту магию и объяснить что и почему начинает работать быстрее?
jh 17.01.2013 18:36 #
в общих чертах, стандартный генератор случайных чисел работает не очень быстро. его меняют на менее "случайный", но более быстрый. это может негативно отразиться на приложениях использующих случайные числа для криптографических операций
predator 17.01.2013 19:20 #
хорошая практика - самим собирать энтропию
А можно поподробней, как такое на android провернуть? :)
blackraven 17.01.2013 17:59 #
А вот тут написано, зачем же (один из случаев) джава его использует...
predator 17.01.2013 18:00 #
а ssh это как касается?
jh 17.01.2013 18:37 #
случайные числа используются в криптографии
predator 17.01.2013 19:20 #
это понятно. но разве ssh написан на java?
dront78 17.01.2013 21:39 #
нет. ssh использует /dev/random
predator 17.01.2013 22:59 #
туплю, извините
dront78 17.01.2013 21:49 #
теперь вкратце весь прикол
друзья с xda завели гуглу баг в котором гугл говорит что он тут не причем, и вообще все это мракобесие)

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

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

для компа есть куча демонов софтовой энтропии с разной степенью качества генерации псевдослучайных последовательностей. для дома сгодится rng-tools. для серверной - он же со включенным hardware random generator, если такой присутствует на палате. простенькое описание есть на сайте gentoo. и да - жаба дышит легче, на xda чувак радовался за быстрые коннекты к Tomcat - так что замеры, замеры и еще раз замеры)
dan 17.01.2013 22:45 #
А теперь внимание! Правильный ответ.

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

Особенно доставляет ускорение _интерфейса_ андроида, который вообще не использует random.

Мало того! Программы на андроиде вообще не имеют доступа к /dev/random, поэтому никак не могут быть на него завязаны.
predator 17.01.2013 23:06 #
Также есть мнение, что генератор всё таки используется, например, для генерации хэш кодов объектов.

Мало того! Программы на андроиде вообще не имеют доступа к /dev/random, поэтому никак не могут быть на него завязаны.


Доступа напрямую они к нему может и не имеют, но через какие-нибудь интерфейсы наверняка. Откуда тогда программы должны брать случайные числа, если они вдруг понадобятся?
dan 18.01.2013 07:19 #
Для генерации хэшей или UUID? Хэш вообще-то должен быть постоянен, а вот UUID вполне может юзать рандом. Но! Не так часто объекты создаются, чтобы тормозил весь интерфейс.

Программы используют АПИ, который, внезапно!, берёт случайный поток из /dev/urandom.
dront78 18.01.2013 07:33 #
троллинга достаточно в гугл коде спасибо
для андроиду есть замены CPU на сайте автора и процессора никто не разгоняет.
для компьютера есть lsof /dev/random угадайте что он выводит при запущенном eclipse например
в том же треде на гугл кодек есть патч для input source использующий рандомизацию
ну и сторонний софт... в общем не стоит безаппеляционно делать такие заявления. замеры замеры замеры :-)
predator 23.01.2013 17:41 #
Ну кто попробовал, признавайтесь!
dront78 24.01.2013 09:15 #
мои впечатления записаны)