összefoglaló a Java két virtuális gépéről: Szerver és Kliens
--------------------------------------------------------------------magamtól----------------------------------------------------------------------- Jelenleg csak a 64-bit támogatja a szerver módot
A szerver VM-ek körülbelül 10%-kal lassabban indulnak, mint a kliens VM-ek.Legalább 10-szer gyorsabban fut, mint a kliens VM; Mivel a szerver CPU-ja, memóriája és merevlemeze erősebb, mint a kliens gép, a program telepítése után szerver módban kell elindítani, hogy jobb teljesítményt érjen el. A JVM alapértelmezett 1M-et használ kliens módban, 64M-et pedig -Xmx-nél. A JVM alapértelmezett értéke 128M-re szerver módban, 1024M-re pedig -Xmx-re.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; A GC-ről: A clien módban az új generáció a sorozatos GC-t választja, a régi generáció pedig a sorozatos GC-t választja Szerver módban az új generáció párhuzamos újrahasznosítási GC-t választ, míg a régi generáció párhuzamos GC-t választ Általánosságban elmondható, hogy kétféleképpen választhatjuk meg a rendszeralkalmazásunkat: áteresztőképesség prioritás és szünetidő prioritása, a szerver alapértelmezett párhuzamos GC módját használják az áteresztőképesség prioritásához, és az egyidejű GC (CMS) módot választjuk ki a szünetidő prioritásához.
--------------------------------------------------------------------böngészőből------------------------------------------------------------------------- A JDK-nak kétféle VM van: VM kliensek és VM szerveralkalmazások. A két megoldás megosztja a Java futás hotspot kódbázisát, de különböző fordítókat használnak egyedi teljesítményjellemzők érdekében mind kliens, mind szerver számára, és ezek a különbségek közé tartozik az inline szabályzatok és halom alapadatok írása.
Bár a szerverek és kliens-VM-ek hasonlóak, a szerver VM-eket kifejezetten a maximális csúcsteljesítményre hangolták. Célja, hogy hosszú ideig futó szerveralkalmazásokat hajtson végre, amelyek a leggyorsabb futási sebességet igénylik a gyors indítási időn vagy a kis futási memória igényén túl.
A Customer VM Compiler egy olyan fordító, amelyet klasszikus virtuális gépek és valós idejű fejlesztések (JIT) használnak a korábbi JDK verziókon keresztül. A kliens virtuális gépek jobb teljesítményt nyújtanak alkalmazások és appletek futtatásához. A Java Virtual Machines hotspot ügyfeleit kifejezetten úgy alakították ki, hogy csökkentsék az alkalmazás indítási idejét és a memória igényét, így különösen alkalmasak legyenek az ügyfélkörnyezetekhez. Általánosságban elmondható, hogy a kliensrendszer jobb grafikus felhasználói felülettel rendelkezik.
Tehát a valódi különbség a fordító szinten is van:
A kliens virtuális gép fordító nem próbál bonyolultabb optimalizálásokat végrehajtani a szerver virtuális gépén, de a csere során kevesebb időt vesz igénybe egy kód elemzése és fordítása. Ez azt jelenti, hogy a kliens virtuális gépek gyorsabban indulhatnak, és kisebb memóriaigényt igényelnek.
A szerver virtuális gép egy fejlett adaptív fordítót tartalmaz, amely támogatja számos C++ fordító optimalizálást ugyanolyan típusú optimalizációhoz, valamint olyan optimalizációkat, amelyeket hagyományos fordítóknál nem lehet megvalósítani, például az agresszív inline virtuális metódushívásokban. Ez versenyelőny és teljesítmény előny, statikus fordító. Az adaptív optimalizálási technikák nagyon rugalmasak megközelítésükben, és gyakran felülmúlják még a fejlett statikus elemzési és fordítási technikákat is.
Amikor a -Server mód elindul, a sebesség lassú, de amikor fut, a teljesítmény jelentősen javul, mert: amikor a virtuális gép -Kliens módban van, egy könnyű fordítót használ, amelynek kódneve C1, és a -Server módban indított virtuális gép egy C2 kódnevű fordítót használ, amely viszonylag alaposan lefordított, mint a C1 fordító, és a teljesítmény a szolgáltatás után magasabb.
Általában, amíg megváltoztatod a -server KNOWN és -client KNOWN konfigurációk sorrendjét,Az alapötlet az, hogy mind szerver, mind kliens mappák léteznek a JAVA_HOME /jre/bin könyvtárábanamelyek megfelelnek a saját JVM-jeiknek
|