ringkasan tentang dua VM Java : Server & Client
--------------------------------------------------------------------dari diriku sendiri----------------------------------------------------------------------- Saat ini, hanya 64-bit yang mendukung mode server
VM server memulai sekitar 10% lebih lambat daripada VM klien.Berjalan setidaknya 10 kali lebih cepat daripada VM Klien; Karena CPU, memori, dan hard disk server lebih kuat daripada mesin klien, setelah program disebarkan, program harus dimulai dalam mode server untuk mendapatkan kinerja yang lebih baik. JVM default ke 1M dalam mode klien dan 64M untuk -Xmx. JVM default ke 128M dalam mode Server dan 1024M untuk -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; Tentang GC: Dalam mode clen, generasi baru memilih GC serial, dan generasi lama memilih GC serial Dalam mode server, generasi baru memilih GC daur ulang paralel, dan generasi lama memilih GC paralel Secara umum, ada dua cara untuk memilih aplikasi sistem kami: prioritas throughput dan prioritas waktu jeda, mode GC paralel default server digunakan untuk prioritas throughput, dan mode GC bersamaan (CMS) dipilih untuk prioritas waktu jeda.
--------------------------------------------------------------------dari browser------------------------------------------------------------------------- JDK memiliki dua jenis VM, klien VM, aplikasi server VM. Kedua solusi berbagi basis kode hotspot runtime Java, tetapi menggunakan kompiler yang berbeda untuk karakteristik performa unik untuk klien dan server, dan perbedaan ini termasuk menulis kebijakan sebaris dan default heap.
Meskipun server dan VM klien serupa, VM server telah disetel secara khusus untuk kecepatan pengoperasian puncak maksimum. Ini dimaksudkan untuk mengeksekusi aplikasi server yang berjalan lama yang membutuhkan kecepatan lari tercepat di luar waktu startup yang cepat atau jejak memori runtime yang kecil.
Kompiler VM Pelanggan adalah kompiler yang digunakan oleh komputer virtual klasik dan peningkatan real-time (JIT) melalui versi JDK sebelumnya. Komputer virtual klien memberikan peningkatan performa untuk menjalankan aplikasi dan applet. Pelanggan hotspot Java Virtual Machine telah disesuaikan secara khusus untuk mengurangi waktu startup aplikasi dan jejak memori agar sangat cocok untuk lingkungan pelanggan. Secara umum, sistem klien memiliki antarmuka pengguna grafis yang lebih baik.
Jadi perbedaan sebenarnya juga ada di tingkat kompilator:
Kompiler komputer virtual klien tidak mencoba melakukan pengoptimalan yang lebih kompleks yang dilakukan oleh kompiler pada komputer virtual server, tetapi selama pertukaran membutuhkan lebih sedikit waktu untuk menganalisis dan mengkompilasi sepotong kode. Ini berarti bahwa komputer virtual klien dapat memulai lebih cepat dan memerlukan jejak memori yang lebih kecil.
Komputer virtual server berisi kompiler adaptif tingkat lanjut yang mendukung banyak pengoptimalan kompiler C++ untuk pengoptimalan, jenis yang sama, serta beberapa pengoptimalan yang tidak dapat dilakukan dengan kompiler tradisional, seperti inline agresif dalam panggilan metode virtual. Ini adalah keunggulan kompetitif dan kinerja, kompiler statis. Teknik pengoptimalan adaptif sangat fleksibel dalam pendekatannya dan seringkali mengungguli bahkan teknik analisis dan kompilasi statis tingkat lanjut.
Saat mode -Server dimulai, kecepatannya lambat, tetapi setelah berjalan, kinerjanya akan sangat meningkat, karena: ketika mesin virtual dalam mode -Klien, ia menggunakan kompiler ringan dengan nama kode C1, dan mesin virtual yang dimulai dalam mode -Server menggunakan kompiler dengan nama kode C2, yang relatif dikompilasi secara menyeluruh daripada kompiler C1, dan kinerjanya lebih tinggi setelah layanan.
Umumnya, selama Anda mengubah urutan dua konfigurasi -server KNOWN dan -client KNOWN,Premisnya adalah bahwa folder server dan klien ada di direktori /jre/bin JAVA_HOMEsesuai dengan JVM masing-masing
|