java hotspot client_“java -server”和“java -client”之间的真正区别?

旧版Java中最明显的直接差异是分配给 -client 而不是 -server 应用程序的内存 . 例如,在我的Linux系统上,我得到:

$ java -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'

uintx AdaptivePermSizeWeight = 20 {product}

uintx ErgoHeapSizeLimit = 0 {product}

uintx InitialHeapSize := 66328448 {product}

uintx LargePageHeapSizeThreshold = 134217728 {product}

uintx MaxHeapSize := 1063256064 {product}

uintx MaxPermSize = 67108864 {pd product}

uintx PermSize = 16777216 {pd product}

java version "1.6.0_24"

因为它默认为 -server ,但是使用 -client 选项我得到:

$ java -client -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'

uintx AdaptivePermSizeWeight = 20 {product}

uintx ErgoHeapSizeLimit = 0 {product}

uintx InitialHeapSize := 16777216 {product}

uintx LargePageHeapSizeThreshold = 134217728 {product}

uintx MaxHeapSize := 268435456 {product}

uintx MaxPermSize = 67108864 {pd product}

uintx PermSize = 12582912 {pd product}

java version "1.6.0_24"

所以 -server 对于这个 java 版本,大多数内存限制和初始分配要高得多 .

但是,这些值可以针对体系结构,操作系统和jvm版本的不同组合进行更改 . jvm的最新版本删除了标志并重新移动了服务器和客户端之间的许多区别 .

还要记住,您可以使用 jvisualvm 查看正在运行 jvm 的所有详细信息 . 如果您有用户或模块设置 JAVA_OPTS 或使用更改命令行选项的脚本,这将非常有用 . 这还可以让您实时监控堆和permgen空间使用情况以及许多其他统计信息 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值