为了账号安全,请及时绑定邮箱和手机立即绑定

JVM client模式和Server模式的区别

/ 猿问

JVM client模式和Server模式的区别

JVM
一只名叫tom的猫 2018-12-30 04:00:07

JVM client模式和Server模式的区别


查看完整描述

1 回答

?
白衣染霜花

仅是指定服务器启动时初始化的参数值,这些默认值影响运行时的性能。
普通 PC 就工作在 client 模式就好了,特别是你的内存不是很大时不需要 server 模式,因为 server 模式是为服务器准备的,它的意思就是说这个服务器启动之后基本上不做别的,所以可以把所有内存都尽量给 JVM 使用,所以才能得到一个更好的性能。

但是 PC 机的话,因为我们频繁地在多个程序切换,每次把程序带到前台窗口或退到后台窗口都会导致 Windows 操作系统在物理内存和硬盘上的虚拟内存之间切换,这影响性能。一个常见的事情就是我们开着多个程序,并且把 Java 程序切换到最小化,另一个非 Java 程序最大化,然后我们出门吃饭 2 小时后回来把 Java 程序最大化,你会发现这个时候切换到最大化可能需要 15分钟的时间,这就是内存紧张时虚拟内存和物理内存间交换数据时导致 JVM 频繁地触发垃圾收集(GC)导致的性能问题。而这个现象在 server 模式不会出现,因为它是假设服务器专用的,而且基本上没有前台程序,都是后台程序。

JVM 并不能预测什么时候是数据从虚拟内存搬到物理内存,什么时候内存紧张又是从物理内存搬到虚拟内存,因为这是操作系统的事情,它不会让应用程序知道这件事。反正JVM在这种情况下频繁地触发"完全的“垃圾收集就导致性能问题。


查看完整回答
反对 回复 2019-01-03
  • 1 回答
  • 0 关注
  • 368 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信