kokkuvõte Java kahe VM-i kohta: Server ja Klient
--------------------------------------------------------------------iseenda eest----------------------------------------------------------------------- Praegu toetab serverirežiimi ainult 64-bitine
Serveri VM-id käivituvad umbes 10% aeglasemalt kui kliendi VM-id.Töötab vähemalt 10 korda kiiremini kui kliendi VM; Kuna serveri protsessor, mälu ja kõvaketas on kliendimasinast võimsamad, tuleks pärast programmi juurutamist see käivitada serverirežiimis, et saavutada parem jõudlus. JVM vaikimisi kasutab kliendirežiimis 1M ja -Xmx puhul 64M. JVM vaikimisi on serverirežiimis 128M ja -Xmx puhul 1024M.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; GC kohta: Clien-režiimis valib uus põlvkond seeria GC ja vana generatsioon seeria GC Serverirežiimis valib uus põlvkond paralleelse taaskasutuse GC ja vana generatsioon paralleelse GC Üldiselt on süsteemirakenduse valimiseks kaks võimalust: läbilaskevõime prioriteet ja pausiaja prioriteet, serveri vaikimisi paralleelne GC režiim kasutatakse läbilaskevõime prioriteediks ning paralleelne GC (CMS) režiim valitakse pausiaja prioriteediks.
--------------------------------------------------------------------brauserist------------------------------------------------------------------------- JDK-l on kaks tüüpi VM-e: VM-kliendid ja VM-serveri rakendused. Mõlemad lahendused jagavad Java jooksuajal kasutatavat hotspot-koodibaasi, kuid kasutavad erinevaid kompilaatoreid unikaalsete jõudlusomaduste jaoks nii kliendile kui serverile ning nende erinevuste hulka kuuluvad sisemiste poliitikate ja kuhja vaikeväärtuste kirjutamine.
Kuigi serverid ja kliendivirtuaalmasinad on sarnased, on serveri VM-id spetsiaalselt häälestatud maksimaalse tippkiiruse saavutamiseks. See on mõeldud pikaajaliste serverirakenduste käivitamiseks, mis vajavad kiireimat töökiirust peale kiire käivitusaja või väikese mälumahu.
Customer VM kompilaator on kompilaator, mida kasutavad klassikalised virtuaalmasinad ja reaalajas uuendused (JIT) varasemate JDK versioonide kaudu. Kliendi virtuaalmasinad pakuvad paremat jõudlust rakenduste ja appletide käivitamiseks. Java virtuaalmasinate hotspot-kliendid on spetsiaalselt kohandatud nii, et vähendada rakenduste käivitusaega ja mälumahtu, et muuta need eriti sobivaks kliendikeskkondadesse. Üldiselt on kliendisüsteemil parem graafiline kasutajaliides.
Seega on tegelik erinevus ka kompilaatori tasandil:
Kliendi virtuaalmasina kompilaator ei püüa serveri virtuaalmasinal teha keerukamaid optimeerimisi, kuid vahetuse käigus kulub kooditüki analüüsimiseks ja kompileerimiseks vähem aega. See tähendab, et kliendi virtuaalmasinad saavad kiiremini käivituda ja vajavad väiksemat mälumahtu.
Serveri virtuaalmasin sisaldab täiustatud adaptiivset kompilaatorit, mis toetab paljusid C++ kompilaatori optimeerimisi sama tüüpi optimeerimiseks, samuti mõningaid optimeerimisi, mida traditsiooniliste kompilaatoritega teha ei saa, näiteks agressiivset inline-tüüpi virtuaalsed meetodikutsed. See on konkurentsieelis ja jõudluse eelis, staatiline kompilaator. Adaptiivse optimeerimise tehnikad on oma lähenemiselt väga paindlikud ja sageli ületavad isegi arenenud staatilise analüüsi ja kompileerimise tehnikaid.
Kui -Server režiim käivitub, on kiirus aeglane, kuid kui see töötab, paraneb jõudlus märkimisväärselt, sest: kui virtuaalmasin on -kliendirežiimis, kasutab ta kerget kompilaatorit koodnimega C1 ning virtuaalmasin, mis käivitatakse -Server režiimis, kasutab kompilaatorit koodnimega C2, mis on suhteliselt põhjalikult kompileeritud kui C1 kompilaator ning jõudlus on pärast teenindust kõrgem.
Üldiselt, kui muudate kahe konfiguratsiooni järjestust -server KNOWN ja -client KNOWN,Eeldus on, et nii serveri kui kliendi kaustad eksisteerivad JAVA_HOME /jre/bin kataloogisvastavalt nende vastavatele JVM-idele
|