2017-01-06 15 views
6

Jeżeli uruchomić następujące na OS X Sierra (JDK 8u111), trwa 5 sekund, aby uruchomić (w przeciwieństwie do milisekund na przykład Linux):RuntimeMXBean.getName() zawiesza się na Mac OS X Sierra - jak naprawić?

import java.lang.management.ManagementFactory; 
import java.lang.management.RuntimeMXBean; 

public class BeanTest { 
    public static void main (String[] args) { 
     RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean(); 
     System.out.println(bean.getName()); 
    } 
} 

To powoduje ogromne spowolnienie biblioteką że użyj, którego nowsze wersje nazywają ten kawałek interfejsu API zarządzania. Moją pierwszą myślą jest to, że jest to problem z DNS (komputer jest w domowym NATie), ale moja próba rozwiązania albo mojej lokalnej nazwy hosta, albo mojego lokalnego adresu IP w powłoce, powoduje natychmiastową odpowiedź (NXDOMAIN). Uruchamianie dtruss na proces Java produkowane ciągłe powtarzanie tych linii na czas od 5 drugim LGD:

782/0x36f5: psynch_cvwait(0x7FEE4170B968, 0x20100000300, 0x200)  = -1 Err#316 
    782/0x36f5: gettimeofday(0x7000039B4938, 0x0, 0x0)  = 0 0 

Co tu się dzieje i co mogę zrobić, aby odblokować tego wąskiego gardła?

+1

mam ten sam problem. Ktoś wie dlaczego? – James

+0

sam problem z JDK 8u131 ... – cloudycliff

Odpowiedz

0

rozwiązać problem ręcznie ustawić nazwę hosta do LocalHostName, przed tym, NazwaHosta nie jest ustawiony:

$ scutil --set HostName $(scutil --get LocalHostName)