kopsavilkums par Java divām VM: Server & Client
--------------------------------------------------------------------no sevis----------------------------------------------------------------------- Pašlaik tikai 64 bitu atbalsta servera režīmu
Servera VM startē par aptuveni 10% lēnāk nekā klienta VM.Darbojas vismaz 10 reizes ātrāk nekā klienta VM; Tā kā servera CPU, atmiņa un cietais disks ir jaudīgāki nekā klienta mašīna, pēc programmas izvietošanas tā jāsāk servera režīmā, lai iegūtu labāku veiktspēju. JVM noklusējuma vērtība ir 1M klienta režīmā un 64M -Xmx. JVM noklusējuma vērtība ir 128M servera režīmā un 1024M -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; Par GC: Clien režīmā jaunā paaudze izvēlas sērijveida GC, bet vecā paaudze izvēlas sērijveida GC Servera režīmā jaunā paaudze izvēlas paralēlo pārstrādi GC, bet vecā paaudze izvēlas paralēlo GC Vispārīgi runājot, ir divi veidi, kā izvēlēties mūsu sistēmas lietojumprogrammu: caurlaides prioritāte un pauzes laika prioritāte, caurlaides prioritātei tiek izmantots servera noklusējuma paralēlais GC režīms, un pauzes laika prioritātei tiek izvēlēts vienlaicīgs GC (CMS) režīms.
--------------------------------------------------------------------no pārlūkprogrammas------------------------------------------------------------------------- JDK ir divu veidu VM, VM klienti, VM servera lietojumprogrammas. Abiem risinājumiem ir kopīga Java izpildlaika tīklāja koda bāze, bet tiek izmantoti dažādi kompilatori, lai nodrošinātu unikālus veiktspējas raksturlielumus gan klientam, gan serverim, un šīs atšķirības ietver iekļauto politiku un kaudzes noklusējuma rakstīšanu.
Lai gan serveri un klientu VM ir līdzīgi, serveru VM ir īpaši noregulētas maksimālajam darbības ātrumam. Tas ir paredzēts, lai izpildītu ilgstošas servera lietojumprogrammas, kurām nepieciešams visātrākais darbības ātrums, kas pārsniedz ātru startēšanas laiku vai nelielu izpildlaika atmiņas nospiedumu.
Klienta VM kompilators ir kompilators, ko izmanto klasiskās virtuālās mašīnas un reāllaika jauninājumi (JIT), izmantojot iepriekšējās JDK versijas. Klienta virtuālās mašīnas nodrošina uzlabotu veiktspēju lietojumprogrammu un sīklietotņu palaišanai. Java virtuālo mašīnu karsto punktu klienti ir īpaši pielāgoti, lai samazinātu lietojumprogrammu palaišanas laiku un atmiņas nospiedumu, lai padarītu tos īpaši piemērotus klientu videi. Kopumā klienta sistēmai ir labāks grafiskais lietotāja interfeiss.
Tātad reālā atšķirība ir arī kompilatora līmenī:
Klienta virtuālās mašīnas kompilators nemēģina veikt sarežģītākas optimizācijas, ko kompilators veic servera virtuālajā mašīnā, bet apmaiņas laikā ir nepieciešams mazāk laika, lai analizētu un kompilētu koda gabalu. Tas nozīmē, ka klienta virtuālās mašīnas var startēt ātrāk un tām ir nepieciešams mazāks atmiņas nospiedums.
Servera virtuālajā mašīnā ir uzlabots adaptīvais kompilators, kas atbalsta daudzas C++ kompilatora optimizācijas optimizācijai, tāda paša tipa, kā arī dažas optimizācijas, kuras nevar veikt ar tradicionālajiem kompilatoriem, piemēram, agresīvu inline virtuālo metožu izsaukumus. Tā ir konkurences un veiktspējas priekšrocība, statisks kompilators. Adaptīvās optimizācijas metodes ir ļoti elastīgas savā pieejā un bieži pārspēj pat progresīvas statiskās analīzes un kompilācijas metodes.
Kad tiek startēts režīms -Server, ātrums ir lēns, bet, tiklīdz tas darbojas, veiktspēja ievērojami uzlabosies, jo: kad virtuālā mašīna ir klienta režīmā, tā izmanto vieglu kompilatoru ar koda nosaukumu C1, un virtuālā mašīna, kas startēta servera režīmā, izmanto kompilatoru ar koda nosaukumu C2, kas ir salīdzinoši rūpīgi kompilēts nekā C1 kompilators, un veiktspēja ir augstāka pēc apkalpošanas.
Parasti, kamēr jūs maināt divu konfigurāciju secību -server KNOWN un -client KNOWN,Priekšnoteikums ir tāds, ka gan servera, gan klienta mapes pastāv JAVA_HOME direktorijā /jre/binkas atbilst to attiecīgajiem JVM
|