深入剖析虚拟机 展现Java独特魅力

  • 研究生记者团
  • 创建于 2005-12-01
  • 1519
     【新闻网讯 张光希】Java应用程序的性能越发受到程序设计人员的关注,要得到高性能的应用,对Java虚拟机内部机制的了解非常重要。11月26日下午,由SUN公司Java技术顾问王昱先生主讲的“Java虚拟机性能监控和调优”专题报告在中关村园区教学楼S106教室成功举办,为听众们揭示了Java虚拟机(JVM)的庐山真面目。

    Java是一种解释型的编程语言,但并不意味着它一定被解释执行。早期的虚拟机确实一条一条指令解释执行,但人们发现这样效率太低,不满足各种要求,因此出现了许多其它的虚拟机,诸如JIT(Just In Time)的即时虚拟机。HotSpot也是类似一种虚拟机,自从SUN公司买下后,就把它植入了JRE 1.3以及后续的版本中。采用HotSpot的Java虚拟机,已经很难说Java语言程序是被虚拟机解释执行了,原因是HotSpot实际上是把Java程序的字节码编译成本地码然后再运行。在讲解中,王昱先生首先介绍了HotSpot的内部结构以及特点,通过现场给出操作演示,介绍了监控和调整Java虚拟机的常用工具。在报告的后半部分,王昱先生重点讲解了如何调整和设置正确的启动参数来使Java虚拟机获得最佳的性能,分析由于内存原因而出现的问题的由来,并给出具体的解决方案。

    Java编程语言对程序员的一个主要魅力在于,它是第一个可提供内置自动内存回收的主流编程语言。在传统语言中,一般都使用显式分配/释放模型来进行动态内存分配。事实证明, 这不仅是造成内存泄漏、程序错误以及用传统语言编写的程序崩溃的最主要原因之一,而且还是提高性能的瓶颈, 并且是形成模块化和可再使用代码的主要障碍。在Java编程语言中,内存回收也是支持安全性模型所必需的所谓“安全地执行”这一语义的重要组成部分。报告中,王昱先生讲解了HotSpot中内存分配和回收的基本原理和“复制回收”、“标记—整理回收”、“增量式回收”等典型的几类算法,并且讨论了内存回收和应用性能之间的密切关系。

    报告结束之后,听众们就如何针对Java虚拟机的性能进行监视和调优等问题进行提问,王昱先生耐心细致地一一作答,并给出了具体的操作建议。

    本次专题报告暨中科院首届开源软件设计大赛开源论坛之七、SUN公司OpenSolaris系列讲座第四场,由中国科学院研究生院开源软件协会(原Linux协会和Java协会)主办,来自中科院研究生院、软件所、清华大学、北京科技大学、中国地质大学(北京)等高校院所的学生以及搜狐公司(Sohu.com)的工程技术人员80余人聆听了本次报告。

    王昱先生是Sun中国工程研究院的Java工程师,现在的主要负责全球合作伙伴的技术支持。作为一名Java资深工程师和架构师,王昱在Java 的很多领域都有多年的造诣,特别是在Java虚拟机、J2EE技术(包括EJB, JSP/Servlet, JMS和Web services等技术)、集群技术和Java应用性能调优上有着较为丰富的经验。曾经多次在重要的Java会议发表演讲,并在国际著名的Java技术站点发表文章。
责任编辑:研究生记者团