Jvm занимает много времени, чтобы решить ip-адрес для localhost
Кажется, у меня проблема с производительностью «sbt test» после перехода на macOS Sierra. На предыдущей версии OS X прошло около 40-50 секунд. macOS Сьерра время намного выше. Последний прогон, который я сделал, составлял около 15 минут. Время компиляции примерно такое же, как у «El Capitan».
Я единственный из своей команды, чтобы попробовать этот новый macOS, поэтому я не могу сказать, происходит ли это только на моем Mac или это универсальная проблема.
У моего коллеги была аналогичная проблема на Ubuntu, и это было связано с генерацией случайных чисел, замедляющей тесты – медленный ответ службы Times: Java SecureRandom & / dev / random
- Запуск Java дает «Ошибка: не удалось открыть» C: \ Program Files \ Java \ jre6 \ lib \ amd64 \ jvm.cfg '"
- Разделить 1 колонку на 3 столбца в искровой скале
- Реализация доходности (доходность доходности) с использованием продолжений Scala
- Скала и прямые ссылки
- Scala: слияние карт по ключу
К сожалению, это не сработало для меня. Первоначально я попробовал это на JDK 8u54, а затем попытался обновить JDK 8u102, и это тоже не помогло.
PS Я запускаю Macbook Pro Mid-2015 2.8GHz i7, 16GB RAM, 1TB SSD.
- Каков самый быстрый способ написать функцию Фибоначчи в Scala?
- Многострочный литерал функции в качестве аргументов в Scala
- Как запустить основной class sbt из оболочки в качестве обычной командной строки?
- Несоответствие типа Scala для понимания
- MatchError при доступе к векторному столбцу в Spark 2.0
- Что происходит с `unionAll` Spark` DataFrame`?
- Как сохранить модели от ML Pipeline до S3 или HDFS?
- Почему «избегать перегрузки метода»?
У меня такая же проблема. 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/