Wygląda na to, że mam problem z wykonaniem „testu sbt” (który obejmuje wyszukanie nazw lokalnych hostów / adresów IP) po uaktualnieniu do macOS Sierra. W poprzedniej wersji OS X ukończenie pracy zajęło około 40-50 sekund. Czasy macOS Sierra są znacznie wyższe. Ostatni bieg, jaki zrobiłem, trwał około 15 minut. Czas kompilacji jest mniej więcej taki sam, jak w przypadku „El Capitan”.
Jestem jedynym z mojego zespołu, który wypróbował ten nowy system MacOS, więc nie mogę powiedzieć, czy dzieje się to tylko na moim Macu, czy jest to problem uniwersalny.
Mój kolega miał podobny problem na Ubuntu i był związany z generowaniem liczb losowych spowalniającym testy - Slow service response Times: Java SecureRandom & / dev / random
Niestety to mi się nie udało. Początkowo próbowałem tego na JDK 8u54, a następnie próbowałem zaktualizować do JDK 8u102 i to też nie pomogło.
PS Używam Macbooka Pro z połowy 2015 r. 2,8 GHz i7, 16 GB pamięci RAM, 1 TB SSD.
gradle clean test
i mam ten sam problem.Odpowiedzi:
Miałem ten sam problem. Tomcat przeszedł z 15 sekund do 6 minut, aby zainicjować kontekst wiosenny po aktualizacji ... wyłączenie csrutils nie rozwiązało problemu.
I rozwiązać ten problem poprzez dodanie mojego hosta Mac (tj Macbook.local, czy cokolwiek Mac nazywa) na
/etc/hosts
plik mapowany na127.0.0.1
adres jak również::1
tak:Jeśli jesteś zainteresowany, możesz znaleźć szczegółowe informacje na temat problemu i rozwiązania tutaj: https://thoeni.io/post/macos-sierra-java/
W poście zamieszczam również link do projektu na githubie, aby pomóc w rozwiązaniu problemu i zweryfikowaniu rozwiązania.
Problem jest związany (jak sądzę) z tym, jak działa rozpoznawanie nazw hostów lokalnych i jak klasa java.net.InetAddr pobiera adresy. Weryfikowałem z kilkoma kolegami i najwyraźniej nie zdarza się to każdemu, kto przeszedł na Sierra, ale wciąż badam korzenie tej zmiany.
Rozwiązanie i tak było takie samo, jak zaimplementowane przez antid0te i działające natychmiast.
źródło
localhost
liniach sprzężenia zwrotnego IPv4 i IPv6 (127.0.0.1
,::1
) nadal zweryfikowana poprawka!Prawidłowa odpowiedź: Jvm zajmuje dużo czasu, aby rozwiązać adres IP dla lokalnego hosta
Dla leniwych:
źródło
/etc/hosts
plik i dodaj 2 hostyMam ten sam problem. Uruchomienie mojej aplikacji wiosennej zajmuje 60 sekund w Sierra w porównaniu z 25 sekundami w Yosemite.
Podczas debugowania zdałem sobie sprawę, że problem pochodzi z InetAddress.getLocalHost (). Zmieniłem plik hosta, dodając nazwę hosta dla 127.0.0.1 i :: 1 i teraz aplikacja uruchamia się tak szybko, jak wcześniej.
źródło
Włączenie np. Preferencje systemowe> Udostępnianie> Logowanie zdalne powoduje automatyczne przypisanie do nazwy hosta adresu IP.
Ponieważ ludzie widzą problemy po aktualizacji, warto założyć, że 10.12 zmieniło sposób rozwiązywania nazwy hosta, tj. Co najmniej w 10.11 nazwa hosta jest zawsze rozwiązywana, podczas gdy w 10.12 jest rozwiązywana tylko wtedy, gdy usługa jest włączona w Preferencjach systemowych> Udostępnianie (ktoś z 10.11 może to potwierdzić).
źródło
Myślę, że jest to ogólny problem z nowym systemem operacyjnym. Mam podobny problem: mam aplikację internetową, która jest wdrożona na tomcat. Na El Capitan uruchomił się w 10 sekund, teraz zajmuje to 95 sekund, a klient (aplikacja komputerowa oparta na Swing) nie może się z nim połączyć (lub przynajmniej zajęło to dużo czasu). Myślę, że chodzi o komunikację sieciową, ponieważ prosta aplikacja na konsolę testową działa dobrze.
źródło
To był dziwny problem po zainstalowaniu aktualizacji do
Mac Sierra 10.12 (16A323)
. W pliku hosts z poniższym posortowanym problemem.Możesz uzyskać nazwę myhostname za pomocą polecenia w
$hostname
dowolnym miejscu terminala.źródło
Przyjęta odpowiedź pomogła mi! Dodając to tutaj, wyjaśniając, jaki moim zdaniem problem był dla mnie:
Moja nazwa hosta była podobna do „Mój Mac”, której nie można było rozwiązać. W ustawieniach pokazało mi, że komputer można adresować za pomocą mymac.local
Pomyślałem, że to spacja i zmieniłem nazwę mojego Maca na „my.mac”, ale nawet to nie pomogło, ponieważ automatycznie dodane dns nadal było mymac.local
Pomogło wtedy dodanie my.mac do / etc / hosts.
Zgaduję więc, jaki jest rzeczywisty problem: dzieje się tak tylko wtedy, gdy nazwa twojego komputera zawiera coś, co nie jest literą. Jest to automatycznie usuwane przez system operacyjny, a następnie nazwa hosta i wpis dns nie są zgodne. (co można naprawić, dodając ręcznie)
źródło
Napotkałem ten sam problem na moim Macu.
Problem został rozwiązany, gdy zmieniłem nazwę hosta podstawowego i nazwę hosta Bonjour, aby zawierały tylko znaki alfanumeryczne. Pomysł wyszedł od kolegi, który gdzieś przeczytał poradę, gdy stanął przed podobnym problemem (nie pamiętał gdzie).
Czerpiąc inspirację z tego przewodnika, postępowałem zgodnie z następującymi krokami:
Najpierw zmień nazwę hosta podstawowego
na przykład:
Następnie zmień nazwę hosta Bonjour (dla kompletności, nigdy nie próbowałem bez tego kroku, więc może być niepotrzebne).
na przykład:
Teraz zrestartuj procesy Java, z którymi miałeś problemy i miejmy nadzieję, że nie powinny się już zawieszać.
Na marginesie, rozwiązało to również inny problem, który miałem, polegający na tym, że nowa karta w Terminalu nie uruchamiała bash w tym samym katalogu pomimo moich preferencji. Nie mam wyjaśnienia, dlaczego tak się stało, ale jestem bardzo zadowolony.
źródło