Wie stelle ich sicher, dass ich die "Server" JVM verwende?

8

Suns JVM gibt es in zwei Varianten: -client und -server , wobei die Server-VM für lange laufende Prozesse optimiert werden soll und für Server-Anwendungen empfohlen wird.

Wenn ich java ohne Parameter ausführe, zeigt es die Verwendungsoptionen an, die den folgenden Text enthalten:

%Vor%

Nachdem ich das gesehen habe, habe ich nicht die -server zum Startup-Befehl hinzugefügt.

In einem kürzlich erschienenen JVM-Absturzprotokoll ist mir jedoch folgende Zeile am Ende der Datei aufgefallen:

%Vor%

Es scheint mir, dass Java die Client-VM trotz der in der Hilfebotschaft angegebenen Funktion verwendet. Ich werde meinem Startbefehl die Option -server hinzufügen, aber jetzt bin ich misstrauisch. Meine Frage ist also: Gibt es eine Möglichkeit, um sicherzustellen, dass die VM, auf der ich arbeite, wirklich die Server-VM ist, ohne dass ein JVM-Absturz erzwungen werden muss?

Das Betriebssystem ist ubuntu 8.04, aber ich verwende JDK 1.6.0_14, das ich von der Sun-Website heruntergeladen habe.

    
itsadok 02.12.2009, 14:12
quelle

4 Antworten

11

Sie können

tun %Vor%

Was auf meinem Rechner entweder zurückgibt:

  

Java HotSpot (TM) Client-VM

oder

  

Java HotSpot (TM) 64-Bit-Server-VM

Natürlich sollten Sie auf der Grundlage dieses Werts keine kritischen Daten eingeben, da sich dies wahrscheinlich in Zukunft ändern wird und auf einer anderen JVM völlig anders sein wird.

    
Jared Russell 02.12.2009, 14:17
quelle
9

Ich hatte eine sehr ähnliche Frage , die ich bei ServerFault gestellt habe . Ich würde sagen, wenn Sie sich interessieren, welche Version ausgeführt wird, verwenden Sie immer -client oder -server.

    
Jason S 02.12.2009 14:19
quelle
1

Nun, wenn Sie explizit mit der Befehlszeilenoption -server starten, führen Sie den Servermodus aus. Das kannst du mit folgendem überprüfen:

%Vor%

Sie können sich RuntimeMXBean anschauen, was sich möglicherweise öffnet mehr Informationen, aber das müsste auf der spezifischen JVM getestet werden, die Sie gerade ausführen.

    
Yishai 02.12.2009 14:19
quelle
1

Ohne eine einzelne Codezeile zu schreiben, wenn Sie JConsole Um eine Verbindung zu Ihrer JVM herzustellen, muss auf der Registerkarte "VM-Zusammenfassung" genau angegeben werden, welche (Server- oder Client-) virtuelle Maschine überwacht wird.

Zum Beispiel

Virtual Machine: OpenJDK Server VM version 1.6.0-b09

Um Ihre JVM remote mit JConsole zu überwachen, aktivieren Sie einfach den Agenten JMX (Java Management Extensions), indem Sie JVM mit den folgenden Systemeigenschaften starten

%Vor%     
hko19 24.06.2010 07:26
quelle

Tags und Links