Я запускаю tomcat7 с jdk7 на MacOSX Mavericks DP3. Все идет хорошо, и для запуска требуется всего 500 мс. Но внезапно он замедляется до 35 секунд.java7 SecureRandom performance на MacOSX
В сообщении журнала показано, что SecureRandom является основной причиной. Спасибо за Google, я обнаружил, что это ошибка JRE, и следующий код для проверки:
import java.security.SecureRandom;
class JRand {
public static void main(String args[]) throws Exception {
System.out.println("Ok: " +
SecureRandom.getInstance("SHA1PRNG").nextLong());
}
}
Да. Простейший код также занимает 35 секунд. Но кажется, что все эти связанные решения не работают для меня. Оба/dev/random и/dev/urandom не являются блочными устройствами на Mac.
cat /dev/random | hexdump -C
мощность очень быстро!
При переключении обратно в jre6 очень быстро генерировать рандомы. Загрузите последнюю версию jdk8-ea, проблема все еще существует.
На самом деле, не только tomcat значительно замедляется, Netbeans, стеклянная рыба все затронуты. После долгих часов работы я бросил наконец.
Сегодня утром, когда я пришел в офис, подключился к сети Ethernet, угадайте, что? Он выздоровел!
Так что мой вопрос: что происходит позади? Это действительно странно.
Спасибо.
Теперь это происходит снова. Инструмент профиль показывает, что он заблокирован при вызове: java.net.Inet6AddressImpl.lookupAllHostAddr (имя хоста) из java.net.InetAddress.getLocalHost() : '( – outersky
это нативный метод. – outersky