sammendrag om Javas to VM: Server og Client
--------------------------------------------------------------------fra meg selv----------------------------------------------------------------------- For øyeblikket støtter kun 64-bit servermodus
Server-VM-er starter omtrent 10 % tregere enn klient-VM-er.Kjører minst 10 ganger raskere enn klient-VM; Siden CPU, minne og harddisk på serveren er kraftigere enn klientmaskinen, bør programmet etter distribusjon startes i servermodus for å oppnå bedre ytelse. JVM har som standard 1M i klientmodus og 64M for -Xmx. JVM er standard 128M i servermodus og 1024M for -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; Om GC: I clien-modus velger den nye generasjonen seriell GC, og den gamle generasjonen velger seriell GC I servermodus velger den nye generasjonen parallell resirkulerings-GC, og den gamle generasjonen velger parallell GC Generelt er det to måter å velge systemapplikasjonen vår på: gjennomstrømningsprioritet og pausetidsprioritet, serverens standard parallelle GC-modus brukes for gjennomstrømningsprioritet, og samtidig GC (CMS)-modus velges for pausetidsprioritet.
--------------------------------------------------------------------fra nettleseren------------------------------------------------------------------------- JDK har to typer VM-er: VM-klienter, VM-serverapplikasjoner. De to løsningene deler hotspot-kodebasen til Java-kjøringen, men bruker forskjellige kompilatorer for unike ytelsesegenskaper for både klient og server, og disse forskjellene inkluderer å skrive innebygde policyer og heap-standardinnstillinger.
Selv om servere og klient-VM-er er like, er server-VM-er spesifikt tilpasset maksimale topphastigheter. Den er ment å kjøre langvarige serverapplikasjoner som krever den raskeste kjørehastigheten utover en rask oppstartstid eller et lite minneavtrykk i kjøretid.
Customer VM-kompilatoren er en kompilator som brukes av klassiske virtuelle maskiner og sanntidsoppgraderinger (JIT) gjennom tidligere versjoner av JDK. Klientvirtuelle maskiner gir forbedret ytelse for å kjøre applikasjoner og appleter. Hotspot-kunder av Java Virtual Machines er spesielt tilpasset for å redusere oppstartstid og minneavtrykk, slik at de er spesielt egnet for kundemiljøer. Generelt har klientsystemet et bedre grafisk brukergrensesnitt.
Så den virkelige forskjellen ligger også på kompilatornivå:
Klientens virtuelle maskinkompilator forsøker ikke å utføre mer komplekse optimaliseringer som kompilatoren gjør på serverens virtuelle maskin, men under utvekslingen tar det mindre tid å analysere og kompilere et kodestykke. Dette betyr at klientvirtuelle maskiner kan starte raskere og krever et mindre minneavtrykk.
Serverens virtuelle maskin inneholder en avansert adaptiv kompilator som støtter mange C++-kompilatoroptimaliseringer for optimalisering, av samme type, samt noen optimaliseringer som ikke kan gjøres med tradisjonelle kompilatorer, som aggressive virtuelle metodekall i inline. Det er en konkurranse- og ytelsesfordel, statisk kompilator. Adaptive optimaliseringsteknikker er svært fleksible i sin tilnærming og overgår ofte selv avanserte statiske analyse- og kompileringsteknikker.
Når -Server-modus starter, er hastigheten treg, men når den først kjører, vil ytelsen bli betydelig forbedret, fordi: når den virtuelle maskinen er i -Client-modus, bruker den en lettvektskompilator med kodenavnet C1, og den virtuelle maskinen som starter i -Server-modus bruker en kompilator med kodenavnet C2, som er relativt grundig kompilert enn C1-kompilatoren, og ytelsen er høyere etter tjenesten.
Generelt, så lenge du endrer rekkefølgen på de to konfigurasjonene av -server KNOWN og -client KNOWN,Premisset er at både server- og klientmapper finnes i /jre/bin-katalogen til JAVA_HOMEtilsvarende deres respektive JVM-er
|