resumé om Javas to VM: Server og Client
--------------------------------------------------------------------fra mig selv----------------------------------------------------------------------- I øjeblikket understøtter kun 64-bit servertilstand
Server-VM'er starter cirka 10% langsommere end klient-VM'er.Kører mindst 10 gange hurtigere end klient-VM; Da serverens CPU, hukommelse og harddisk er mere kraftfulde end klientmaskinen, bør programmet, efter udrulning, startes i servertilstand for at opnå bedre ydeevne. JVM er standard 1M i klienttilstand og 64M for -Xmx. JVM er som standard 128M i servertilstand og 1024M for -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; Om GC: I clien-tilstand vælger den nye generation seriel GC, og den gamle generation vælger seriel GC I servertilstand vælger den nye generation parallel genbrug af GC, og den gamle generation vælger parallel GC Generelt er der to måder at vælge vores systemapplikation på: gennemstrømningsprioritet og pausetidsprioritet, serverens standard parallelle GC-tilstand bruges til gennemstrømningsprioritet, og samtidig GC (CMS) tilstand vælges som pausetidsprioritet.
--------------------------------------------------------------------fra browseren------------------------------------------------------------------------- JDK har to typer VM'er: VM-klienter, VM-serverapplikationer. De to løsninger deler hotspot-kodebasen for Java-runtime, men bruger forskellige compilere for unikke ydeevneegenskaber for både klient og server, og disse forskelle inkluderer skrivning af inline-politikker og heap-defaults.
Selvom servere og klient-VM'er ligner hinanden, er server-VM'er specifikt tilpasset maksimale tophastigheder. Den er beregnet til at køre langvarige serverapplikationer, der kræver den hurtigste driftshastighed ud over en hurtig opstartstid eller et lille hukommelsesforbrug under kørselstid.
Customer VM Compiler er en compiler, der bruges af klassiske virtuelle maskiner og realtidsopgraderinger (JIT) gennem tidligere versioner af JDK. Klientvirtuelle maskiner giver forbedret ydeevne til at køre applikationer og applets. Hotspot-kunder af Java Virtual Machines er blevet specielt tilpasset for at reducere opstartstid og hukommelsesforbrug, så de er særligt egnede til kundemiljøer. Generelt har klientsystemet en bedre grafisk brugerflade.
Så den reelle forskel er også på compiler-niveau:
Client-virtualmaskine-kompilatoren forsøger ikke at udføre mere komplekse optimeringer, som compileren udfører på serverens virtuelle maskine, men under udvekslingen tager det mindre tid at analysere og kompilere et stykke kode. Det betyder, at klient-virtuelle maskiner kan starte hurtigere og kræver et mindre hukommelsesforbrug.
Serverens virtuelle maskine indeholder en avanceret adaptiv compiler, der understøtter mange C++-compileroptimeringer til optimering, af samme type, samt nogle optimeringer, der ikke kan udføres med traditionelle compilere, såsom aggressive inline inline virtuelle metodekald. Det er en konkurrence- og ydelsesfordel, statisk compiler. Adaptive optimeringsteknikker er meget fleksible i deres tilgang og overgår ofte selv avancerede statiske analyse- og kompileringsteknikker.
Når -Server-tilstanden starter, er hastigheden langsom, men når den først kører, vil ydeevnen være væsentligt forbedret, fordi: når den virtuelle maskine er i -Client-tilstand, bruger den en letvægtskompilator med kodenavnet C1, og den virtuelle maskine, der starter i -Server-tilstand, bruger en compiler med kodenavnet C2, som er relativt grundigt kompileret end C1-kompilatoren, og ydelsen er højere efter service.
Generelt, så længe du ændrer rækkefølgen af de to konfigurationer af -server KNOWN og -client KNOWN,Forudsætningen er, at både server- og klientmapper findes i /jre/bin-mappen i JAVA_HOMEsvarende til deres respektive JVM'er
|