Ich habe anscheinend ein Problem mit der Leistung des "sbt-Tests" (einschließlich der Suche nach lokalen Hostnamen / IP-Adressen) nach dem Upgrade auf macOS Sierra. In einer früheren Version von OS X dauerte der Abschluss ca. 40-50 Sekunden. Die Zeiten für macOS Sierra sind viel höher. Der letzte Lauf, den ich gemacht habe, war ungefähr 15 Minuten. Die Kompilierungszeiten sind ungefähr die gleichen wie bei 'El Capitan'.
Ich bin der einzige aus meinem Team, der dieses neue MacOS ausprobiert, sodass ich nicht sagen kann, ob es nur auf meinem Mac passiert oder ob es sich um ein universelles Problem handelt.
Mein Kollege hatte ein ähnliches Problem unter Ubuntu und es hing mit der Generierung von Zufallszahlen zusammen, die die Tests verlangsamte - Langsame Service-Antwortzeiten: Java SecureRandom & / dev / random
Leider hat das bei mir nicht funktioniert. Ursprünglich habe ich das auf JDK 8u54 versucht und dann versucht, auf JDK 8u102 zu aktualisieren, und das hat auch nicht geholfen.
PS Ich verwende Macbook Pro Mitte 2015 mit 2,8 GHz i7, 16 GB RAM und 1 TB SSD.
gradle clean test
und habe das gleiche Problem.Antworten:
Ich hatte das gleiche Problem. Tomcat ging von 15 Sekunden auf 6 Minuten, um den Frühlingskontext nach dem Upgrade zu initialisieren ... das Deaktivieren von csrutils hat das Problem für mich nicht gelöst.
Ich habe das Problem gelöst , indem ich meinen Mac-Hostnamen (dh Macbook.local oder wie auch immer Ihr Mac heißt) zu der
/etc/hosts
Datei hinzugefügt habe, die der127.0.0.1
Adresse zugeordnet ist, und Folgendes::1
:Wenn Sie interessiert sind, finden Sie hier einige Details zu dem Problem und der Lösung: https://thoeni.io/post/macos-sierra-java/
In diesem Beitrag verlinke ich auch auf ein Github-Projekt , um das Problem zu beheben und die Lösung zu validieren.
Das Problem hängt (glaube ich) damit zusammen, wie die Auflösung des lokalen Hostnamens funktioniert und wie die Klasse java.net.InetAddr die Adressen abruft. Ich habe mit wenigen Kollegen überprüft, und anscheinend passiert es nicht jedem, der ein Upgrade auf Sierra durchgeführt hat, aber ich untersuche immer noch die Wurzeln dieser Änderung.
Die Lösung war sowieso die gleiche, die antid0te implementiert und sofort funktioniert hat.
quelle
localhost
an IPv4- und IPv6-Loopback-Zeilen (127.0.0.1
,::1
) wurde weiterhin überprüft.Richtige Antwort: Jvm benötigt viel Zeit, um die IP-Adresse für localhost aufzulösen
Für die Faulen:
quelle
/etc/hosts
Datei manuell zu bearbeiten und fügen Sie die 2 Hosts hinzuIch habe das gleiche Problem. Meine Spring-Boot-Anwendung benötigt 60 Sekunden, um in Sierra zu starten, gegenüber 25 Sekunden in Yosemite.
Beim Debuggen wurde mir klar, dass das Problem von InetAddress.getLocalHost () herrührt. Ich habe meine Hostdatei geändert, um meinen Hostnamen für 127.0.0.1 und :: 1 hinzuzufügen, und jetzt startet die Anwendung so schnell wie zuvor.
quelle
Wenn Sie z. B. Systemeinstellungen> Freigabe> Remote-Anmeldung aktivieren, wird dem Hostnamen automatisch eine IP-Adresse zugewiesen.
Da nach dem Upgrade Probleme auftreten, ist es sinnvoll anzunehmen, dass 10.12 die Auflösung des Hostnamens geändert hat, dh zumindest mit 10.11 wird der Hostname immer aufgelöst, während er mit 10.12 nur behoben wird, wenn ein Dienst in den Systemeinstellungen> aktiviert ist Teilen (jemand mit 10.11 könnte dies bestätigen).
quelle
Ich denke, es ist ein allgemeines Problem mit dem neuen Betriebssystem. Ich habe ein ähnliches Problem: Ich habe eine Webanwendung, die auf Tomcat bereitgestellt wird. Auf El Capitan wurde es in 10 Sekunden gestartet, jetzt dauert es 95 Sekunden und der Client (eine Swing-basierte Desktop-App) kann keine Verbindung herstellen (oder es hat zumindest viel Zeit in Anspruch genommen). Ich denke, es geht um Netzwerkkommunikation, da eine einfache Testkonsolen-App gut läuft.
quelle
Es war ein seltsames Problem nach der Installation des Updates auf
Mac Sierra 10.12 (16A323)
. In der Hosts-Datei mit der folgenden sortiert das Problem.Sie können den Namen myhost per Befehl an einer
$hostname
beliebigen Stelle im Terminal abrufen .quelle
Die akzeptierte Antwort hat mir geholfen! Fügen Sie dies hier hinzu und erklären Sie, was meiner Meinung nach das Problem für mich war:
Mein Hostname war so etwas wie "Mein Mac", der nicht aufgelöst werden konnte. In den Einstellungen zeigte es mir, dass der Computer mit mymac.local adressiert werden konnte
Ich dachte, es sei der Speicherplatz und benannte meinen Mac in "my.mac" um, aber selbst das half nichts, da der automatisch hinzugefügte DNS immer noch mymac.local war
Das Hinzufügen von my.mac zu / etc / hosts hat dann geholfen.
Ich vermute also, was das eigentliche Problem ist: Dies passiert nur, wenn Ihr Computername etwas enthält, das kein Buchstabe ist. Dies wird vom Betriebssystem automatisch entfernt und dann stimmen Hostname und DNS-Eintrag nicht überein. (was durch manuelles Hinzufügen behoben werden kann)
quelle
Ich habe das gleiche Problem auf meinem Mac festgestellt.
Als ich meine primären und Bonjour-Hostnamen so änderte, dass sie nur alphanumerische Zeichen enthielten, wurde das Problem behoben. Die Idee kam von einem Kollegen, der den Rat irgendwo gelesen hatte, als er vor einem ähnlichen Problem stand (er konnte sich nicht erinnern, wo).
Ich ließ mich von diesem Leitfaden inspirieren und folgte den folgenden Schritten:
Ändern Sie zunächst den primären Hostnamen
z.B:
Ändern Sie als Nächstes den Hostnamen von Bonjour (der Vollständigkeit halber habe ich es nie ohne diesen Schritt versucht, sodass er möglicherweise nicht benötigt wird).
z.B:
Starten Sie nun die Java-Prozesse neu, mit denen Sie Probleme hatten, und hoffentlich sollten sie nicht länger hängen bleiben.
Nebenbei bemerkt, dies löste auch ein anderes Problem, bei dem eine neue Registerkarte im Terminal trotz meiner Einstellungen nicht im selben Verzeichnis Bash starten würde. Ich habe keine Erklärung dafür, warum das passiert ist, aber ich bin sehr zufrieden.
quelle