sammanfattning om Javas två VM: Server och Client
--------------------------------------------------------------------från mig själv----------------------------------------------------------------------- För närvarande stöder endast 64-bitars serverläge
Server-VM:ar startar ungefär 10 % långsammare än klient-VM:ar.Körs minst 10 gånger snabbare än klient-VM; Eftersom serverns CPU, minne och hårddisk är kraftfullare än klientmaskinen, bör programmet efter att programmet distribuerats startas i serverläge för att uppnå bättre prestanda. JVM är standard 1M i klientläge och 64M för -Xmx. JVM är standard 128M i serverläge och 1024M för -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; Om GC: I clien-läget väljer den nya generationen seriell GC, och den gamla generationen väljer seriell GC I serverläge väljer den nya generationen parallell återvinnings-GC, och den gamla generationen väljer parallell GC Generellt sett finns det två sätt att välja vår systemapplikation: genomströmningsprioritet och paustidsprioritet, serverns standard parallella GC-läge används för genomströmningsprioritet, och samtidigt GC (CMS)-läget väljs för paustidsprioritet.
--------------------------------------------------------------------från webbläsaren------------------------------------------------------------------------- JDK har två typer av VM:er, VM-klienter och VM-serverapplikationer. De två lösningarna delar hotspot-kodbasen för Java-runtime, men använder olika kompilatorer för unika prestandaegenskaper för både klient och server, och dessa skillnader inkluderar att skriva inbyggda policyer och heap-standarder.
Även om servrar och klient-VM:ar liknar varandra, har server-VM:er specifikt justerats för maximala topphastigheter. Den är avsedd att köra långvariga serverapplikationer som kräver den snabbaste hastigheten utöver en snabb uppstartstid eller ett litet minnesavtryck under körning.
Customer VM-kompilatorn är en kompilator som används av klassiska virtuella maskiner och realtidsuppgraderingar (JIT) genom tidigare versioner av JDK. Klientvirtuella maskiner ger förbättrad prestanda för att köra applikationer och applets. Hotspot-kunder för Java Virtual Machines har särskilt justerats för att minska applikationsstarttiden och minnesbehovet och göra dem särskilt lämpliga för kundmiljöer. Generellt har klientsystemet ett bättre grafiskt användargränssnitt.
Så den verkliga skillnaden finns också på kompilatornivå:
Klientens virtuella maskinkompilator försöker inte utföra mer komplexa optimeringar som kompilatorn utför på serverns virtuella maskin, men under utbytet tar det mindre tid att analysera och kompilera en kodbit. Detta innebär att klientens virtuella maskiner kan starta snabbare och kräver ett mindre minnesavtryck.
Serverns virtuella maskin innehåller en avancerad adaptiv kompilator som stöder många C++-kompilatoroptimeringar för optimering, av samma typ, samt vissa optimeringar som inte kan göras med traditionella kompilatorer, såsom aggressiva inline-in-virtuella metodanrop. Det är en konkurrens- och prestandafördel, statisk kompilator. Adaptiva optimeringstekniker är mycket flexibla i sitt tillvägagångssätt och överträffar ofta även avancerade statiska analys- och kompileringstekniker.
När -Server-läget startar är hastigheten långsam, men när det väl körs förbättras prestandan avsevärt, eftersom: när den virtuella maskinen är i -Client-läge använder den en lättviktskompilator med kodnamnet C1, och den virtuella maskinen som startas i -Server-läge använder en kompilator med kodnamnet C2, som är relativt grundligt kompilerad än C1-kompilatorn, och prestandan är högre efter tjänst.
Generellt, så länge du ändrar ordningen på de två konfigurationerna av -server KNOWN och -client KNOWN,Premissen är att både server- och klientmappar finns i /jre/bin-katalogen i JAVA_HOMEmotsvarande deras respektive JVM
|