povzetek o dveh Java VM: Server & Client
--------------------------------------------------------------------pred samim seboj----------------------------------------------------------------------- Trenutno le 64-bitni način podpira strežniški način
Strežniški VM-ji se zaženejo približno 10 % počasneje kot odjemalski VM-ji.Deluje vsaj 10-krat hitreje kot odjemalski VM; Ker so procesor, pomnilnik in trdi disk strežnika zmogljivejši od odjemalskega računalnika, je treba program po namestitvi zagnati v strežniškem načinu za boljše zmogljivosti. JVM privzeto nastavi 1M v načinu odjemalca in 64M za -Xmx. JVM privzeto nastavlja 128M v strežniškem načinu in 1024M za -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; O GC: V načinu clien nova generacija izbere serijski GC, stara generacija pa serijski GC V strežniškem načinu nova generacija izbere vzporedno recikliranje GC, stara generacija pa vzporedno GC Na splošno obstajata dva načina izbire sistemske aplikacije: prioriteta prepustnosti in prioriteta časa premora, privzeti vzporedni GC način strežnika se uporablja za prioriteto prepustnosti, in sočasni GC (CMS) način je izbran za prioriteto časa premora.
--------------------------------------------------------------------iz brskalnika------------------------------------------------------------------------- JDK ima dve vrsti VM-jev: VM odjemalce in VM strežniške aplikacije. Obe rešitvi si delita hotspot kodo Java runtime, vendar uporabljata različne prevajalnike za edinstvene zmogljivostne značilnosti tako za odjemalca kot strežnik, te razlike pa vključujejo pisanje inline politik in privzetih heapov.
Čeprav so strežniki in odjemalski VM-ji podobni, so strežniški VM-ji posebej prilagojeni za največje vršne obratovalne hitrosti. Namenjen je izvajanju dolgotrajnih strežniških aplikacij, ki zahtevajo najhitrejšo hitrost delovanja nad hitrim zagonskim časom ali majhnim pomnilniškim prostorom med izvajanjem.
Customer VM Compiler je prevajalnik, ki ga uporabljajo klasični virtualni stroji in nadgradnje v realnem času (JIT) v prejšnjih različicah JDK. Odjemalski virtualni stroji zagotavljajo boljšo zmogljivost za izvajanje aplikacij in apletov. Hotspot stranke Java virtualnih strojev so bile posebej prilagojene za zmanjšanje časa zagona aplikacij in porabe pomnilnika, da so posebej primerne za uporabniška okolja. Na splošno ima odjemalski sistem boljši grafični uporabniški vmesnik.
Torej je prava razlika tudi na ravni prevajalnika:
Odjemalski prevajalnik virtualnih strojev ne poskuša izvajati bolj zapletenih optimizacij, ki jih izvaja prevajalnik na strežniškem virtualnem stroju, vendar med izmenjavo traja manj časa za analizo in prevajanje kode. To pomeni, da se lahko odjemalski virtualni stroji zaženejo hitreje in zahtevajo manjšo pomnilniško odtiselnost.
Strežniški virtualni stroj vsebuje napreden adaptivni prevajalnik, ki podpira številne optimizacije C++ prevajalnikov za optimizacijo, iste vrste, pa tudi nekatere optimizacije, ki jih tradicionalni prevajalniki ne morejo izvedeti, kot so agresivni inline in virtualni metodni klici. Gre za statični prevajalnik s konkurenčno in zmogljivostno prednostjo. Tehnike prilagodljive optimizacije so zelo prilagodljive v svojem pristopu in pogosto presegajo celo napredne tehnike statične analize in prevajanja.
Ko se zažene način -Server, je hitrost počasna, a ko se zažene, se zmogljivost močno izboljša, ker: ko je virtualni stroj v načinu -Client, uporablja lahek prevajalnik s kodnim imenom C1, virtualni stroj, ki se začne v načinu -Server, pa uporablja prevajalnik s kodnim imenom C2, ki je razmeroma temeljito preveden kot prevajalnik C1, zmogljivost pa je po servisu višja.
Na splošno, dokler spremenite vrstni red obeh konfiguracij -server KNOWN in -client KNOWN,Predpostavka je, da v mapi /jre/bin JAVA_HOME obstajata tako strežniška kot odjemalska mapakar ustreza njihovim ustreznim JVM
|