Als ich das letzte Mal einen Blick darauf warf (und das ist zugegebenermaßen schon eine Weile her), war der größte Unterschied, der mir auffiel, in der Garbage Collection.
IIRC:
- Die Server-Heap-VM hat eine andere Anzahl von Generationen als die Client-VM und einen anderen Garbage-Collection-Algorithmus. Dies ist vielleicht nicht mehr der Fall
- Die Server-VM weist Speicher zu und gibt ihn nicht an das Betriebssystem frei.
- Die Server-VM verwendet anspruchsvollere Optimierungsalgorithmen und hat daher einen höheren Zeit- und Speicherbedarf für die Optimierung
Wenn Sie zwei Java-VMs, einen Client und einen Server, mit dem jvisualvm sollten Sie einen Unterschied in der Häufigkeit und Wirkung der Garbage Collection sowie in der Anzahl der Generationen feststellen.
Ich hatte ein paar Screenshots, die den Unterschied sehr gut zeigten, aber ich kann es nicht reproduzieren, da ich eine 64-Bit-JVM habe, die nur die Server-VM implementiert. (Und ich kann nicht die Mühe machen, die 32-Bit-Version auf meinem System herunterzuladen und zu ringen).
Dies scheint nicht mehr der Fall zu sein, nachdem ich versucht habe, einige Codes unter Windows sowohl mit Server- als auch mit Client-VMs auszuführen, scheine ich das gleiche Generierungsmodell für beide zu erhalten...