rezumat despre cele două VM-uri ale Java: Server și Client
--------------------------------------------------------------------de la mine----------------------------------------------------------------------- În prezent, doar 64 de biți suportă modul server
Mașinile virtuale de server pornesc cu aproximativ 10% mai încet decât cele ale clientului.Rulează de cel puțin 10 ori mai repede decât Client VM; Deoarece CPU-ul, memoria și hard disk-ul serverului sunt mai puternice decât cele ale mașinii client, după implementarea programului, acesta trebuie pornit în modul server pentru a obține performanțe mai bune. JVM este implicit 1M în modul client și 64M pentru -Xmx. JVM este implicit 128M în modul Server și 1024M pentru -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; Despre GC: În modul clien, noua generație alege GC serial, iar generația veche alege GC serial În modul server, noua generație alege GC de reciclare paralelă, iar generația veche alege GC paralel În general, există două moduri de a alege aplicația de sistem: prioritatea de debit și prioritatea de timp de pauză, modul implicit de GC paralel al serverului este folosit pentru prioritatea de throughput, iar modul GC concurent (CMS) este selectat pentru prioritatea de timp de pauză.
--------------------------------------------------------------------din browser------------------------------------------------------------------------- JDK are două tipuri de mașini virtuale, clienți VM, aplicații server VM. Cele două soluții împart baza de cod hotspot a runtime-ului Java, dar folosesc compilatoare diferite pentru caracteristici unice de performanță atât pentru client, cât și pentru server, iar aceste diferențe includ scrierea de politici inline și implicite de heap.
Deși serverele și mașinile virtuale client sunt similare, mașinile virtuale pentru server au fost ajustate special pentru viteze maxime de operare maximă. Este conceput pentru a executa aplicații server de lungă durată care necesită cea mai rapidă viteză de rulare, dincolo de un timp de pornire rapid sau de o amprentă mică de memorie la rulare.
Customer VM Compiler este un compilator folosit de mașinile virtuale clasice și de actualizările în timp real (JIT) prin versiunile anterioare ale JDK. Mașinile virtuale client oferă performanțe îmbunătățite pentru rularea aplicațiilor și applet-urilor. Clienții hotspot ai mașinilor virtuale Java au fost ajustați special pentru a reduce timpul de pornire al aplicațiilor și amprenta memoriei, făcându-le deosebit de potrivite pentru mediile clienților. În general, sistemul client are o interfață grafică mai bună.
Deci diferența reală este și la nivelul compilatorului:
Compilatorul mașinii virtuale client nu încearcă să efectueze optimizări mai complexe efectuate de compilator pe mașina virtuală a serverului, dar în timpul schimbului durează mai puțin să analizezi și să compilezi o bucată de cod. Aceasta înseamnă că mașinile virtuale client pot porni mai rapid și necesită o amprentă de memorie mai mică.
Mașina virtuală a serverului conține un compilator adaptiv avansat care suportă multe optimizări C++ pentru optimizare, de același tip, precum și unele optimizări care nu pot fi realizate cu compilatoarele tradiționale, cum ar fi apelurile agresive inline în metode virtuale. Este un avantaj competitiv și de performanță, un compilator static. Tehnicile de optimizare adaptivă sunt foarte flexibile în abordarea lor și adesea depășesc chiar și tehnicile avansate de analiză statică și compilare.
Când pornește modul -Server, viteza este lentă, dar odată ce rulează, performanța va fi mult îmbunătățită, deoarece: când mașina virtuală este în modul -Client, folosește un compilator ușor cu numele de cod C1, iar mașina virtuală pornită în modul -Server folosește un compilator cu numele de cod C2, care este relativ compilat în detaliu decât compilatorul C1, iar performanța este mai mare după serviciu.
În general, atâta timp cât schimbi ordinea celor două configurații: -server CUNOSCUT și -client CUNOSCUT,Premisa este că atât folderele server, cât și cele client există în directorul /jre/bin al JAVA_HOMEcorespunzător JVM-urilor lor respective
|