Parece que tengo un problema con el rendimiento de la "prueba sbt" (que incluye buscar nombres de host local / direcciones IP) después de actualizar a macOS Sierra. En una versión anterior de OS X, tardó entre 40 y 50 segundos en finalizar. Los tiempos de macOS Sierra son mucho más altos que eso. La última carrera que hice fue de unos 15 minutos. Los tiempos de compilación son aproximadamente los mismos que en 'El Capitán'.
Soy el único de mi equipo que ha probado este nuevo macOS, por lo que no puedo saber si solo está sucediendo en mi mac o si es un problema universal.
Mi colega tuvo un problema similar en Ubuntu y estaba relacionado con la generación de números aleatorios que ralentizaba las pruebas - Tiempos de respuesta de servicio lentos: Java SecureRandom y / dev / random
Desafortunadamente, eso no funcionó para mí. Originalmente probé eso en JDK 8u54 y luego intenté actualizar a JDK 8u102 y eso tampoco ayudó.
PD: Estoy usando Macbook Pro Mid-2015 2.8GHz i7, 16GB de ram, 1TB SSD.
gradle clean test
y tengo el mismo problema.Respuestas:
Yo tuve el mismo problema. Tomcat pasó de 15 segundos a 6 minutos para inicializar el contexto de primavera después de la actualización ... deshabilitar csrutils no resolvió el problema por mí.
Me solucionó el problema mediante la adición de mi nombre de host Mac (es decir Macbook.local, o lo que su Mac se llama) en el
/etc/hosts
archivo asignado a la127.0.0.1
dirección, así como la::1
siguiente manera:Si está interesado, puede encontrar algunos detalles sobre el problema y la solución aquí: https://thoeni.io/post/macos-sierra-java/
En la publicación también me vinculo a un proyecto de github para ayudar a solucionar el problema y validar la solución.
El problema está relacionado (creo) con cómo funciona la resolución de nombres de localhost y cómo la clase java.net.InetAddr está recuperando las direcciones. Verifiqué con algunos colegas y aparentemente no les pasa a todos los que se actualizaron a Sierra, pero todavía estoy investigando las raíces de este cambio.
De todos modos, la solución fue la misma que implementó antid0te y funcionó de inmediato.
fuente
localhost
de las líneas de loopback de IPv4 e IPv6 (127.0.0.1
,::1
) aún se verificó como solución!Respuesta correcta: Jvm tarda mucho en resolver la dirección IP de localhost
Para los perezosos:
fuente
/etc/hosts
archivo y agregue los 2 hostsTengo el mismo problema. Mi aplicación de arranque de primavera tarda 60 segundos en iniciarse en Sierra frente a 25 segundos en Yosemite.
Mientras depuraba, me di cuenta de que el problema proviene de InetAddress.getLocalHost (). Cambié mi archivo de host para agregar mi nombre de host para 127.0.0.1 y :: 1 y ahora la aplicación se inicia tan rápido como antes.
fuente
Habilitar, por ejemplo, Preferencias del sistema> Compartir> Inicio de sesión remoto, da como resultado que al nombre de host se le asigne automáticamente una dirección IP.
Como las personas están viendo problemas después de la actualización, tiene sentido asumir que 10.12 cambió la forma en que se resuelve el nombre de host, es decir, al menos con 10.11 el nombre de host siempre se resuelve, mientras que con 10.12 se resuelve solo si un servicio está habilitado en Preferencias del sistema> Compartir (alguien con 10.11 podría confirmar esto).
fuente
Creo que es un problema generalizado con el nuevo sistema operativo. Tengo un problema similar: tengo una aplicación web que está implementada en tomcat. En El Capitán se inició en 10 segundos, ahora toma 95 segundos y el cliente (una aplicación de escritorio basada en Swing) no puede conectarse a él (o al menos tomó mucho tiempo). Creo que es algo relacionado con la comunicación en red, porque una aplicación de consola de prueba simple funciona bien.
fuente
Fue un problema extraño después de instalar la actualización en
Mac Sierra 10.12 (16A323)
. En el archivo de hosts con lo siguiente se solucionó el problema.Puede obtener myhostname mediante un comando
$hostname
en cualquier lugar de la terminal.fuente
¡La respuesta aceptada me ayudó! Solo agrego esto aquí explicando cuál creo que fue el problema para mí:
Mi nombre de host era algo así como "Mi Mac" que no se pudo resolver. En la configuración, me mostró que la computadora podría direccionarse con mymac.local
Pensé que era el espacio y renombré mi mac a "my.mac" pero ni siquiera esto ayudó, ya que el dns agregado automáticamente seguía siendo mymac.local
Agregar my.mac a / etc / hosts ayudó entonces.
Entonces, supongo cuál es el problema real: esto solo sucede cuando el nombre de su computadora contiene algo que no sea una letra. Esto es eliminado automáticamente por el sistema operativo y luego el nombre de host y la entrada dns no coinciden. (que se puede arreglar si lo agrego manualmente)
fuente
Experimenté el mismo problema en mi Mac.
Cuando cambié mis nombres de host principal y Bonjour para que solo contengan caracteres alfanuméricos, se resolvió el problema. La idea vino de un colega que había leído el consejo en alguna parte cuando se enfrentaba a un problema similar (no recordaba dónde).
Inspirándome en esta guía, estos fueron los pasos que seguí:
Primero, cambie el nombre de host principal
p.ej:
A continuación, cambie el nombre de host de Bonjour (para completar, nunca lo intenté sin este paso, por lo que podría ser que no sea necesario).
p.ej:
Ahora reinicie los procesos de Java con los que tenía problemas y, con suerte, ya no deberían bloquearse.
En una nota al margen, esto también resolvió otro problema que tuve donde una nueva pestaña en Terminal no iniciaba bash en el mismo directorio a pesar de mis preferencias. No tengo una explicación de por qué sucedió eso, pero estoy muy contento.
fuente