Real differences between “java -server” and “java -client”-JVM Server和JVM Client的不同
来源:互联网 发布:sql server 恢复挂起 编辑:程序博客网 时间:2024/04/29 04:05
This is really linked to HotSpot and the default option values (Java HotSpot VM Options) which differ between client and server configuration.
From Chapter 2 of the whitepaper (The Java HotSpot Performance Engine Architecture):
The JDK includes two flavors of the VM -- a client-side offering, and a VM tuned for server applications. These two solutions share the Java HotSpot runtime environment code base, but use different compilers that are suited to the distinctly unique performance characteristics of clients and servers. These differences include the compilation inlining policy and heap defaults.
Although the Server and the Client VMs are similar, the Server VM has been specially tuned to maximize peak operating speed. It is intended for executing long-running server applications, which need the fastest possible operating speed more than a fast start-up time or smaller runtime memory footprint.
The Client VM compiler serves as an upgrade for both the Classic VM and the just-in-time (JIT) compilers used by previous versions of the JDK. The Client VM offers improved run time performance for applications and applets. The Java HotSpot Client VM has been specially tuned to reduce application start-up time and memory footprint, making it particularly well suited for client environments. In general, the client system is better for GUIs.
So the real difference is also on the compiler level:
The Client VM compiler does not try to execute many of the more complex optimizations performed by the compiler in the Server VM, but in exchange, it requires less time to analyze and compile a piece of code. This means the Client VM can start up faster and requires a smaller memory footprint.
The Server VM contains an advanced adaptive compiler that supports many of the same types of optimizations performed by optimizing C++ compilers, as well as some optimizations that cannot be done by traditional compilers, such as aggressive inlining across virtual method invocations. This is a competitive and performance advantage over static compilers. Adaptive optimization technology is very flexible in its approach, and typically outperforms even advanced static analysis and compilation techniques.
Note: The release of jdk6 update 10 (see Update Release Notes:Changes in 1.6.0_10) tried to improve startup time, but for a different reason than the hotspot options, being packaged differently with a much smaller kernel.
转自http://stackoverflow.com/questions/198577/real-differences-between-java-server-and-java-client
- Real differences between “java -server” and “java -client”-JVM Server和JVM Client的不同
- differences between “java -server” and “java -client”
- Java的虚拟机JVM之JVM-server、JVM-client区别
- jvm的client和server
- client JVM 和 server JVM 的区别
- JVM -server和-client模式
- JVM的server模式和client模式
- JVM的Server模式和Client模式
- java虚拟机--jvm client模式与server模式的区别
- [JAVA学习笔记-94]JVM的client与server模式
- JVM的Server/Client模式
- 【JVM】 JVM的server模式和client模式
- java并发编程实践学习(三)JVM的server模式和client模式
- jvm server和client模式切换
- JVM -client和-server模式性能比较
- JVM Client 和Server运行模式
- 关于JVM的server/client版本
- JVM的Client模式与Server模式
- java web
- 使用cJSON
- 创建数据源,访问数据
- [Java][hoj]Super Calculator
- 1012——外币兑换
- Real differences between “java -server” and “java -client”-JVM Server和JVM Client的不同
- MFC学习第八节:在数据库的数据在窗口中显示(显示一个学生时)
- JSON在android中应用
- 1017——期末成绩
- C语言 JSON 解析库 - MJSON使用介绍
- 基于javaEE的结构体系之jdbc
- HDU 3065(ac自动机)
- 2.4 Stream2
- c语言解析json数据