Кажется, у меня проблемы с производительностью «теста sbt» (который включает поиск имен / IP-адресов локальных хостов) после обновления до macOS Sierra. В предыдущей версии OS X для завершения требовалось около 40-50 секунд. Время macOS Sierra намного выше. Последний раз я пробежал около 15 минут. Время компиляции примерно такое же, как и на "El Capitan".
Я единственный из своей команды, кто попробовал эту новую macOS, поэтому я не могу сказать, происходит ли это только на моем Mac или это универсальная проблема.
У моего коллеги была аналогичная проблема в Ubuntu, и она была связана с генерацией случайных чисел, замедляющей тесты - Медленное время ответа службы: Java SecureRandom & / dev / random
К сожалению, у меня это не сработало. Первоначально я пробовал это на JDK 8u54, а затем попытался обновить до JDK 8u102, и это тоже не помогло.
PS Я использую Macbook Pro Mid-2015 i7 2,8 ГГц, 16 ГБ оперативной памяти, 1 ТБ SSD.
gradle clean test
и имею ту же проблему.Ответы:
У меня такая же проблема. Tomcat перешел с 15 секунд до 6 минут на инициализацию весеннего контекста после обновления ... отключение csrutils не решило проблему для меня.
Я решил проблему, добавив свое имя хоста Mac (например, Macbook.local или что-то еще, что называется на вашем Mac) в
/etc/hosts
файл, сопоставленный с127.0.0.1
адресом, а также::1
следующее:Если вам интересно, вы можете найти подробную информацию о проблеме и решении здесь: https://thoeni.io/post/macos-sierra-java/
В этом посте я также ссылаюсь на проект github, чтобы помочь устранить проблему и проверить решение.
Проблема связана (я считаю) с тем, как работает разрешение имен localhost и как класс java.net.InetAddr получает адреса. Я проверил с несколькими коллегами, и, очевидно, это случается не со всеми, кто перешел на Sierra, но я все еще исследую корни этого изменения.
В любом случае решение было тем же, что реализовал antid0te, и сразу сработало.
источник
localhost
к линиям обратной связи IPv4 и IPv6 (127.0.0.1
,::1
) все еще проверено исправлением!Правильный ответ: Jvm долго определяет ip-адрес для localhost
Для ленивых:
источник
/etc/hosts
файл и добавить 2 хостаУ меня та же проблема. Моему приложению с весенней загрузкой требуется 60 секунд для запуска на Sierra против 25 секунд на Yosemite.
Во время отладки я понял, что проблема исходит от 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 с указанным ниже образом рассортирована проблема.Вы можете получить myhostname командой в
$hostname
любом месте терминала.источник
Принятый ответ мне помог! Просто добавив это здесь, объясняя, в чем, по моему мнению, для меня была проблема:
Мое имя хоста было чем-то вроде «Мой Mac», которое не могло быть разрешено. В настройках он показал мне, что к компьютеру можно обращаться с помощью mymac.local
Я подумал, что это пространство, и переименовал свой Mac в «my.mac», но даже это не помогло, поскольку автоматически добавленный DNS все еще был mymac.local
Тогда помогло добавление my.mac в / etc / hosts.
Итак, я предполагаю, в чем настоящая проблема: это происходит только тогда, когда имя вашего компьютера содержит что-либо, кроме буквы. Это автоматически удаляется ОС, и тогда имя хоста и запись DNS не совпадают. (что можно исправить, добавив его вручную)
источник
У меня возникла такая же проблема на моем Mac.
Когда я изменил свои основные имена и имена хостов Bonjour, чтобы они содержали только буквенно-цифровые символы, проблема была решена. Идея пришла от коллеги, который где-то читал совет, когда столкнулся с аналогичной проблемой (он не мог вспомнить где).
Вдохновленный этим руководством, я сделал следующие шаги:
Сначала измените основное имя хоста
например:
Затем измените имя хоста Bonjour (для полноты картины я никогда не пробовал без этого шага, поэтому он может оказаться ненужным).
например:
Теперь перезапустите java-процессы, с которыми у вас возникли проблемы, и, надеюсь, они больше не будут зависать.
Кстати, это также решило другую проблему, с которой я столкнулся, когда новая вкладка в Терминале не запускала bash в том же каталоге, несмотря на мои предпочтения. У меня нет объяснений, почему это произошло, но я очень доволен.
источник