shrnutí dvou Java VM: Server & Client
--------------------------------------------------------------------před sebou samým----------------------------------------------------------------------- V současnosti serverový režim podporuje pouze 64bitový režim
Serverové VM se spouštějí asi o 10 % pomaleji než klientské VM.Běží alespoň 10krát rychleji než klientský VM; Protože CPU, paměť a pevný disk serveru jsou výkonnější než klientský stroj, po nasazení by program měl být spuštěn v serverovém režimu pro lepší výkon. JVM ve výchozím nastavení nastavuje 1M v klientském režimu a 64M pro -Xmx. JVM ve výchozím nastavení nastavuje 128M v serverovém režimu a 1024M v -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; O GC: V režimu klien nová generace volí sériovou zelenou kartu a starší generace sériovou generaci V serverovém režimu nová generace volí paralelní recyklační GC a starší generace paralelní GC Obecně platí, že existují dva způsoby, jak zvolit naši systémovou aplikaci: priorita propustnosti a priorita času pauzy, výchozí paralelní GC režim serveru se používá pro prioritu propustnosti a režim souběžného GC (CMS) je zvolen pro prioritu času pauzy.
--------------------------------------------------------------------z prohlížeče------------------------------------------------------------------------- JDK má dva typy VM: VM klienty a VM serverové aplikace. Obě řešení sdílejí hotspotový kódový základ Java runtime, ale používají různé kompilátory pro jedinečné výkonnostní charakteristiky jak pro klienta, tak server, a tyto rozdíly zahrnují psaní inline politik a výchozích heapů.
Zatímco servery a klientské VM jsou si podobné, serverové VM byly speciálně naladěny pro maximální maximální provozní rychlosti. Je určen k provozu dlouhodobě běžících serverových aplikací, které vyžadují nejrychlejší spuštění nad rámec rychlého startu nebo malé paměti za běhu.
Customer VM Compiler je kompilátor používaný klasickými virtuálními stroji a real-time upgrademi (JIT) v předchozích verzích JDK. Klientské virtuální stroje poskytují lepší výkon pro spouštění aplikací a appletů. Hotspot zákazníci Java virtuálních strojů byli speciálně upraveni tak, aby snížili čas spuštění aplikací a spotřebu paměti, aby byly zvláště vhodné pro zákaznická prostředí. Obecně má klientský systém lepší grafické uživatelské rozhraní.
Takže skutečný rozdíl je také na úrovni kompilátoru:
Klientský kompilátor virtuálního stroje se nesnaží provádět složitější optimalizace prováděné kompilátorem na serverovém virtuálním stroji, ale během výměny trvá analýza a kompilace kódu kratší čas. To znamená, že klientské virtuální stroje mohou startovat rychleji a vyžadují menší paměťovou kapacitu.
Serverový virtuální stroj obsahuje pokročilý adaptivní kompilátor, který podporuje mnoho optimalizací pro optimalizaci C++ kompilátorů stejného typu, stejně jako některé optimalizace, které nelze provést tradičními kompilátory, například agresivní inline volání metod ve virtuálních metodách. Je to statický kompilátor s konkurenční a výkonnostní výhodou. Adaptivní optimalizační techniky jsou ve svém přístupu velmi flexibilní a často překonávají i pokročilé techniky statické analýzy a kompilace.
Když se spustí režim -Server, rychlost je pomalá, ale jakmile běží, výkon se výrazně zlepší, protože: když je virtuální stroj v režimu -Client, používá lehký překladač kódové jméno C1 a virtuální stroj spuštěný v režimu -Server používá kompilátor s kódovým označením C2, který je relativně důkladně zkompilovaný než kompilátor C1 a jeho výkon je po servisu vyšší.
Obecně, pokud změníte pořadí dvou konfigurací -server KNOWN a -client KNOWN,Předpokladem je, že v adresáři /jre/bin JAVA_HOME existují jak složky serveru, tak klienta.odpovídající jejich příslušným JVM
|