JVM FAQ节选翻译

内容摘自Frequently Asked Questions About the Java HotSpot VM,地址是http://www.oracle.com/technetwork/java/hotspotfaq-138619.html

 

1.My application runs slowly. Why?

 

首先,我们理解cpu执行字节码的时间占总的程序执行时间的比例是很重要的,那种I/O Bound的程序,或者程序在执行native代码的时候,

JVM本身并没有消耗cpu时间,JVM虚拟机优化技术只针对优化执行字节码的时间。比较典型的反例是频繁 执行 native操作的图形程序,或者是

频繁发送接受网络数据包的I/O Bound程序,又或是读写数据库的程序。

 

我们假定JVM绝大部分时间都在执行字节码,并且确保VM是在正确的模式下,体积比较小和需要快速启动的程序可以使用-client选项,

需要全性能运行的程序需要使用-server选项。

 

如果上面的方法没有解决性能问题,可以查看一下JVM的详细参数列表 Java HotSpot VM Options ,同时也有很多工具帮助我们找到存在性能

问题的地方, jstat (Java Virtual Machine Statistics Monitoring Tool) and hprof (A Heap/CPU Profiling Tool)。

 

2.My program isn't scaling with the number of processors.

 

可扩展问题涉及到很多方面,首先你的程序可能不是以可扩展的方式编写的(比如代码里存在大量的同步互斥操作,或者是单线程),也可能是你的

程序使用了不可扩展的操作系统资源,最后如果是多线程程序,垃圾回收器将会是程序可随cpu核数扩展的障碍。

更多的关于GC scalability的信息, see Frequently Asked Questions About Garbage Collection in the Java HotSpot VM and Tuning Garbage Collection with the 5.0 Java Virtual Machine .

VM使用的线程模型也可能是一个问题. 更多的关于threading model scalability的信息, see Java and Solaris Threads Document

 

3.How many processors will the HotSpot VM scale to?

 

有很多因素限制了程序对cpu核数的可扩展能力,在cpu核数很多的情况下,垃圾收集经常是一个瓶颈。可扩展能力对我们的开发小组来说是优先级最高的。现在我们只有以可扩展的方式编写程序,然后观察程序在多cpu系统上的吞吐量改善情况。

 

4.Benchmarking the Java HotSpot VM

待续...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值