Parece que tenho um problema com o desempenho do "teste sbt" (que inclui a pesquisa de nomes de host local / endereços IP) após a atualização para o macOS Sierra. Em uma versão anterior do OS X, demorava cerca de 40-50 segundos para terminar. Os tempos do macOS Sierra são muito maiores do que isso. A última corrida que fiz durou cerca de 15 minutos. Os tempos de compilação são quase os mesmos de 'El Capitan'.
Sou o único da minha equipe a experimentar este novo macOS, então não posso dizer se ele está acontecendo apenas no meu mac ou se é um problema universal.
Meu colega teve um problema semelhante no Ubuntu e estava relacionado com a geração de números aleatórios tornando os testes mais lentos - Tempos de resposta de serviço lentos: Java SecureRandom & / dev / random
Infelizmente, isso não funcionou para mim. Originalmente tentei fazer isso no JDK 8u54 e depois tentei atualizar para o JDK 8u102 e não ajudou muito.
PS Estou executando o Macbook Pro Mid-2015 2.8 GHz i7, 16 GB de RAM, SSD de 1 TB.
gradle clean test
e tendo o mesmo problema.Respostas:
Eu tive o mesmo problema. O Tomcat passou de 15 segundos para 6 minutos para inicializar o contexto do spring após a atualização ... desabilitar csrutils não resolveu o problema para mim.
I resolvido o problema adicionando o meu hostname Mac (ou seja Macbook.local, ou qualquer que seja o seu Mac é chamado) no
/etc/hosts
arquivo mapeado para o127.0.0.1
endereço, bem como o::1
assim:Se estiver interessado, você pode encontrar alguns detalhes sobre o problema e a solução aqui: https://thoeni.io/post/macos-sierra-java/
Na postagem, também incluo um link para um projeto do github para ajudar a solucionar o problema e validar a solução.
O problema está relacionado (acredito) em como funciona a resolução de nome de host local e como a classe java.net.InetAddr está recuperando os endereços. Verifiquei com poucos colegas e aparentemente isso não acontece com todos que atualizaram para o Sierra, mas ainda estou investigando as raízes dessa mudança.
De qualquer forma, a solução foi a mesma que o antid0te implementou e funcionou imediatamente.
fonte
localhost
linhas de loopback IPv4 e IPv6 (127.0.0.1
,::1
) correção ainda verificada!Resposta correta: Jvm leva muito tempo para resolver o endereço IP do host local
Para os preguiçosos:
fonte
/etc/hosts
arquivo e adicionar os 2 hostsEu tenho o mesmo problema. Meu aplicativo de inicialização rápida leva 60 segundos para iniciar no Sierra contra 25 segundos no Yosemite.
Durante a depuração, percebi que o problema vem de InetAddress.getLocalHost (). Eu mudei meu arquivo host para adicionar meu hostname para 127.0.0.1 e :: 1 e agora o aplicativo inicia tão rápido quanto antes.
fonte
Ativar, por exemplo, Preferências do sistema> Compartilhamento> Login remoto, resulta na atribuição automática de um endereço IP ao nome do host.
Como as pessoas estão vendo problemas após a atualização, faz sentido supor que 10.12 mudou a forma como o nome do host é resolvido, ou seja, pelo menos com 10.11 o nome do host é sempre resolvido, enquanto com 10.12 ele é resolvido apenas se um serviço for habilitado em Preferências do Sistema> Compartilhando (alguém com 10.11 pode confirmar isso).
fonte
Acho que é um problema geral com o novo sistema operacional. Eu tenho um problema semelhante: tenho um aplicativo da web que é implantado no tomcat. No El Capitan ele inicializou em 10 segundos, agora leva 95 segundos e o cliente (um aplicativo de desktop baseado em Swing) não pode se conectar a ele (ou pelo menos demorou muito). Acho que é algo relacionado à comunicação de rede, porque um aplicativo de console de teste simples funciona bem.
fonte
Foi um problema estranho depois de instalar a atualização para
Mac Sierra 10.12 (16A323)
. No arquivo hosts com o seguinte classificou o problema.Você pode obter o myhostname por comando
$hostname
em qualquer lugar no terminal.fonte
A resposta aceita me ajudou! Apenas adicionando isso aqui explicando o que acho que o problema para mim era:
Meu nome de host era algo como "Meu Mac", que não pôde ser resolvido. Nas configurações, ele me mostrou que o computador pode ser endereçado com mymac.local
Achei que fosse o espaço e renomeei meu mac para "my.mac", mas mesmo isso não ajudou, pois o dns adicionado automaticamente ainda era mymac.local
Adicionar my.mac ao / etc / hosts ajudou então.
Então, meu palpite é qual é o problema real: isso só acontece quando o nome do seu computador contém algo que não seja uma letra. Isso é removido automaticamente pelo sistema operacional e, em seguida, o nome do host e a entrada dns não correspondem. (que pode ser corrigido ao adicioná-lo manualmente)
fonte
Eu tive o mesmo problema no meu Mac.
Quando mudei meus nomes de host principal e Bonjour para conter apenas caracteres alfanuméricos, resolvi o problema. A ideia veio de um colega que leu o conselho em algum lugar quando estava enfrentando um problema semelhante (ele não conseguia se lembrar onde).
Inspirando-me neste guia, estas foram as etapas que segui:
Primeiro, altere o nome do host principal
por exemplo:
Em seguida, altere o nome do host Bonjour (para estar completo, nunca tentei sem essa etapa, então pode ser que não seja necessária).
por exemplo:
Agora reinicie os processos java com os quais você estava tendo problemas e, com sorte, eles não devem mais travar.
Por outro lado, isso também resolveu outro problema que eu tinha, em que uma nova guia no Terminal não iniciava o bash no mesmo diretório, apesar das minhas preferências. Não tenho explicação de por que isso aconteceu, mas estou muito satisfeito.
fonte