Jvm занимает много времени, чтобы решить ip-адрес для localhost

Кажется, у меня проблема с производительностью «sbt test» после перехода на macOS Sierra. На предыдущей версии OS X прошло около 40-50 секунд. macOS Сьерра время намного выше. Последний прогон, который я сделал, составлял около 15 минут. Время компиляции примерно такое же, как у «El Capitan».

Я единственный из своей команды, чтобы попробовать этот новый macOS, поэтому я не могу сказать, происходит ли это только на моем Mac или это универсальная проблема.

У моего коллеги была аналогичная проблема на Ubuntu, и это было связано с генерацией случайных чисел, замедляющей тесты – медленный ответ службы Times: Java SecureRandom & / dev / random

К сожалению, это не сработало для меня. Первоначально я попробовал это на JDK 8u54, а затем попытался обновить JDK 8u102, и это тоже не помогло.

PS Я запускаю Macbook Pro Mid-2015 2.8GHz i7, 16GB RAM, 1TB SSD.

У меня такая же проблема. Tomcat пошел с 15 секунд до 6 минут, чтобы инициализировать весенний контекст после обновления … отключение csrutils не решило проблему для меня.

Я решил проблему, добавив свое имя хоста Mac (например, Macbook.local или любой другой его Mac) в /etc/hosts сопоставленном с адресом 127.0.0.1 а также ::1 следующим образом:

 127.0.0.1 localhost mbpro.local ::1 localhost mbpro.local 

Если вас это интересует, вы можете найти некоторые сведения о проблеме и решении здесь: https://thoeni.io/post/macos-sierra-java/

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

Проблема связана (я полагаю) о том, как работает разрешение имен localhost и как class java.net.InetAddr извлекает адреса. Я проверил несколько коллег и, по-видимому, это не случилось со всеми, кто перешел в Сьерра, но я все еще изучаю корни этого изменения.

Решение в любом случае было тем же, что и antid0te .

Правильный ответ: Jvm занимает много времени, чтобы разрешить ip-адрес для localhost

Для ленивых людей:

 sudo sed -i bak "s^127\.0\.0\.1.*^127.0.0.1 localhost $(hostname)^g" /etc/hosts sudo sed -i bak "s^::1.*^::1 localhost $(hostname)^g" /etc/hosts sudo ifconfig en0 down sudo ifconfig en0 up 

У меня такая же проблема. Мое приложение для весенней загрузки занимает 60 секунд, чтобы начать с Сьерры против 25 секунд на Йосемити.

Во время отладки я понял, что проблема исходит от InetAddress.getLocalHost (). Я изменил свой файл хоста, чтобы добавить мое имя для 127.0.0.1 и :: 1, и теперь приложение запускается так же быстро, как раньше.

Включение, например, «Системные настройки»> «Совместное использование»> «Удаленный вход», приводит к тому, что имя хоста автоматически назначается IP-адресом.

Поскольку люди видят проблемы после обновления, имеет смысл предположить, что 10.12 изменило способ определения имени хоста, то есть по крайней мере с 10.11 имя хоста всегда разрешено, а с 10.12 оно разрешено, только если служба включена в «Системные настройки»> Обмен (кто-то с 10.11 мог бы подтвердить это).

Я думаю, что это общая проблема с новой ОС. У меня есть аналогичная проблема: у меня есть веб-приложение, которое развертывается в tomcat. На El Capitan он запустился за 10 секунд, теперь он занимает 95 секунд, и клиент (настольное приложение на основе Swing) не может подключиться к нему (или, по крайней мере, потребовалось много времени). Я думаю, что это что-то вроде сетевого общения, потому что простое тестовое консольное приложение работает хорошо.

Это была странная проблема после установки обновления в Mac Sierra 10.12 (16A323) . В файле hosts с ниже отсортирована проблема.

 ::1 localhost .local <--- Was already present 127.0.0.1 localhost .local <--- Solved the tomcat loading issue 

Вы можете получить myhostname по команде $hostname любом месте терминала.

Принятый ответ помог мне! Просто добавив это здесь, объясняя, что я думаю, проблема для меня была:

Мое имя хоста было чем-то вроде «Мой Mac», который не мог быть разрешен. В настройках он показал мне, что компьютер может быть адресован с помощью mymac.local

Я думал, что это пространство и переименовал мой mac в «my.mac», но даже это не помогло, так как автоматически добавленный dns был mymac.local

Затем добавили my.mac в / etc / hosts.

Поэтому я предполагаю, какова фактическая проблема: это происходит только тогда, когда имя вашего компьютера содержит все, что не является буквой. Это автоматически удаляется os, а затем имя хоста и запись dns не совпадают. (который может быть исправлен, добавив его вручную)

Это может быть из-за некоторых ошибок в способе создания Mac OS Sierra. Попробуйте сделать то, что называется сбросом SMC или сбросом PRAM, чтобы проверить, не исправит ли ваш Mac. Это сбрасывание программного обеспечения и не повредит вашим пользовательским данным. Они могут потребовать, чтобы вы просто сбросили системное время после перезапуска.

Но они потенциально могут решить ваши проблемы. Вы также можете ознакомиться с некоторыми из упомянутых советов, касающимися устранения неполадок Mac OS Sierra, – http://elcapitanslow.com/mac-os-sierra-slow-what-to-do/

  • Что такое аннотация Scala для оптимизации рекурсивной функции хвоста?
  • Spark Row для JSON
  • Как определить пользовательский разделитель для Spark RDD с одинаковым размером раздела, где каждый раздел имеет одинаковое количество элементов?
  • Как создать источник, который может получать элементы позже через вызов метода?
  • Scala эквивалент Java java.lang.Class Объект
  • Как работает HashPartitioner?
  • Scala подчеркивает минимальную функцию
  • Какие веб-frameworks Scala доступны?
  • Не найден параметр конфигурации для ключа 'akka.version'
  • Spark - загрузить CSV-файл как DataFrame?
  • Фильтр Искра DataFrame в строке содержит
  • Давайте будем гением компьютера.