JVM两种运行模式的区别

  1. 编译器方面:
  • client模式:使用c1编译器,c1编译器更加轻量级;
  • server模式:使用c2编译器;
  • c2编译器编译相较于c1编译器更加彻底。
  1. GC方面:
  • client模式:一般选择串行GC垃圾收集器(JDK 8默认为:Serial+Serial Old);
  • server模式:一般选择并行的GC垃圾收集器(JDK 8默认为:Parallel Scavenge+Serial Old)
  • 可以使用命令java -XX:PrintCommandLineFlags -version,查询你所使用GC垃圾收集器。
  1. 启动运行方面:
  • client模式:启动快、编译快、内存占用少,针对桌面应用程序所设计,优化桌面应用程序的启动时间;
  • server模式:启动慢、编译更完全、编译器是自适应编译器,效率高,针对服务端应用程序设计,最大化程序执行速度;
  • 吞吐量优先使用Parallel Scavenge(默认GC垃圾收集器),时间优先使用CMS。
posted @ 2021-12-07 14:03  Alfie014  阅读(93)  评论(0编辑  收藏  举报