Dlaczego Java, działająca w trybie -serwera, mówi, że wersja jest "mieszana"? Kiedy to widzę, czy oznacza to, że JVM naprawdę nie załadowała się w trybie czystego serwera?Dlaczego Java, działająca w trybie -serwera, mówi, że wersja jest "mieszana"?
Odpowiedz
tryb serwera nie oznacza "nie mieszany". To są różne ustawienia.
Mieszany oznacza, że JVM będzie mieszać kod skompilowany i zinterpretowany. Możesz opcjonalnie przełączyć się do trybu w pełni zinterpretowanego za pomocą przełącznika -Xint (zwykle nie chcesz tego robić).
Tryb serwera oznacza, że kompilator hot spot będzie działał z ustawieniami serwera. Ogólne założenie jest takie, że maszyny wirtualne w trybie serwera działają długo, więc w tym celu zostaną przeprowadzone optymalizacje.
Jeśli widzisz tryb mieszany, nie oznacza to, że Twoja maszyna wirtualna nie działa w trybie serwera.
EDIT: Jeśli chcesz sprawdzić, co naprawdę działa, spróbuj wyjście
System.out.println(System.getProperty("java.vm.name"));
System.out.println(System.getProperty("java.vm.info"));
Przynajmniej na słońce VM lub OpenJDK to daje wskazówkę. Możesz zauważyć, że zawsze będziesz uruchamiał maszynę wirtualną serwera, jeśli używasz systemu 64-bitowego.
'-Xcomp' tylko dla copmiled. I nie chcesz tego robić./Nawiasem mówiąc, serwer HotSpot ma swój własny interpreter (pobiera informacje profilowania, co sprawia, że jest nieco wolniejszy od standardowej interpretacji torfowiska). –
Zarówno klient i serwer Hotspot kompilatory są zawarte w Java Runtime Environment.
Domyślnie kompilator klienta jest włączony, ale w przypadku aplikacji intensywnych po stronie serwera można uruchomić kompilator serwera za pomocą opcji środowiska wykonawczego -server. Wirtualna maszyna Hotspot zwykle działa w trybie mieszanym, jak widać na wyjściu -wersji. Tryb mieszany oznacza, że Hotspot dynamicznie kompiluje kody bajtowe Java do kodu natywnego po spełnieniu szeregu kryteriów, w tym liczby przeprowadzonych metod przez interpreter. Mieszany tryb runtime zwykle zapewnia najlepszą wydajność.
Sugeruje to, że opcja -serwer wyłącza tryb mieszany . Artykuł pochodzi z 2000 roku, więc prawdopodobnie nie jest tak dokładny. – extraneon
- 1. Dlaczego Księga mówi, że muszę rzucić malloc?
- 2. Dlaczego SQLite mówi, że instr nie istnieje?
- 3. Idea Intellij mówi, że Java Home jest inny
- 4. Dlaczego ReSharper mówi mi, że to wyrażenie jest zawsze prawdziwe?
- 5. Dlaczego ten kod mówi, że echo jest wyłączone?
- 6. WebStorm mówi, że konsola jest nierozwiązaną zmienną
- 7. Dlaczego Java Web Start mówi, że podpisany plik JAR nie jest podpisany?
- 8. Stan mówi Wersja robocza w Prod
- 9. Java działająca jako usługa Unix
- 10. Dlaczego Neo4J mówi mi, że nie ma łyżki?
- 11. Dlaczego MySQL Workbench mówi mi, że potrzebuję średnika
- 12. Dlaczego python mówi, że mam "brak modułu o nazwie venv"?
- 13. Dlaczego "człowiek 2 otwarty" mówi, że istnieją dwa rodzaje otwartych?
- 14. Ubuntu mówi virtualenv nie jest zainstalowany, ale pip mówi, że jest
- 15. Dlaczego g ++ mówi "nie pasuje do" operatora = ', gdy wyraźnie jest, a Visual Studio widzi, że jest?
- 16. Moduł Ansible Command mówi, że '|' jest nielegalny charakter
- 17. Dlaczego Firebug mówi toFixed() nie jest funkcją?
- 18. Co robi Eclipse, gdy mówi, że aktualizuje indeksy?
- 19. GWT: Wersja Jetty w trybie deweloperskim
- 20. Dlaczego ie7 jest zawsze w trybie Quirks?
- 21. działająca konsola Rails w produkcji
- 22. Wyczyść wartość pola, jeśli ModelState mówi, że pole jest nieprawidłowe
- 23. firebug błędnie mówi mi, że moja zmienna nie jest zdefiniowana
- 24. Zainstalowane szyny, ale polecenie szyn mówi, że nie jest zainstalowane
- 25. git subtree pull mówi, że drzewo robocze ma modyfikacje, ale status git mówi, że tak nie jest. Co daje?
- 26. Dlaczego Eclipse Maven mówi, że zależności w tej samej wersji są sprzeczne?
- 27. Qt: Wartość zwracana sygnału działa, dlaczego oficjalny dokument mówi, że jest to niemożliwe/zabronione?
- 28. dlaczego scikitlearn mówi, że wynik F1 jest źle zdefiniowany przy FN większym niż 0?
- 29. Dlaczego Restlet na GAE mówi Komponent jest NULL
- 30. Błąd Localizable.strings - kompilator mówi, że brakuje pliku
Możesz również chcieć przeczytać: http://stackoverflow.com/questions/198577/real-differences-between-java-server-and-java-client – biziclop