快速业务通道

从虚拟机视角谈Java应用性能优化 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13

从虚拟机视角谈Java应用性能优化

时间:2012-02-26 IBM 周祥

Java 的普及和广泛应用,以及其基于虚拟机运行的机制,使得性能问题越来越重要。本文从 Java 虚拟机的角度,特别是垃圾回收机制来剖析了 Java 应用程序设计需要注意的方面,并总结出了几条非常容易被忽视的设计、编写代码的原则和习惯。最后通过实例来介绍几种主要的 Java Profiler 工具对我们进行开发和分析的帮助。本文要求读者具有一定的 Java 虚拟机的基础知识,一定的 Java 设计模式和开发经验。通过阅读本文,读者能从 Java 运行的本质上对性能方面有一个很好的把握,在设计和编码的过程中,遵循文中总结的原则和习惯,对于提高性能、可维护性、可扩展性很有帮助。同时让读者了解利用 profiler 工具来分析 Java 程序的性能。

开始之前

Java 平台已无处不在,Java EE、Java SE、Java ME 和 Java Card,Java 的发展为无数程序员提供了工作机会,都是“Java”,然而除了基本的 Java 语法大都一致外,程序员必须基于不同的平台有不同的考虑,学习不同平台的特点:

不同平台的环境

Java EE 所运行的硬件服务器、操作系统,Java SE 所在 PC 机的体系结构(X86/X64、MAC、SPARC 等),Java ME 所运行的手机或移动设备,Java Card 所在的智能卡芯片类型等;

不同平台虚拟机的特点

如是否支持多线程(这似乎是毋庸置疑,但是在 Java Card 平台上,由于计算资源相当有限,多线程目前还不被支持),Java EE 和 Java SE 的虚拟机特性几乎相同,而 Java ME 虚拟机(KVM)根据移动设备的特点进行裁剪和优化,以适应于有限的物理内存和存储空间,而根据设备处理能力的强弱还分为 CDC(Connected Device Configuration,联网设备配置)和 CLDC(Connected Limited Device Configuration,联网受限设备配置),更小设备和智能卡的虚拟机 JCVM(Java Card VM)更是裁剪了许多特性,如多线程、许多复杂数据类型的支持、主动的垃圾收集机制等,这甚至导致了对 Java 语法集的裁剪;

不同平台的 API 和可用的第三方库

Java EE 和 Java SE 是超集与子集的关系,因为她们所处的计算机平台和操作系统目前很好的兼容,而 Java ME 和 Java Card 与 EE 和 SE 是 Totally different,除了 java.lang.*,部分 java.io.* 等核心类库保留外,其他的 API 和类库完全不同。java.microedition.* 和 javax.microedition.* 表明这是 ME 平台,javacard.* 表明这是 Java Card 平台。同时,由于 EE 和 SE 平台的普及程度和开发者人数,使得之上的第三方库十分海量。深入了解和掌握平台的 API 和库是不同平台程序员进阶的必由之路。

从这个角度上说,Java 在不同的平台之间,并不是“一次编写、处处运行”,考虑应用程序的设计和优化的时候,首先要看是在什么平台上,因为源于以上不同的特点,编程模型、设计模式,甚至语言集都不尽相同。在这里我们着重考虑 Java EE 和 SE 的视角,但有很多设计、编程原则和习惯对于所有平台的程序员来说,都适用。

Java 虚拟机

Java 虚拟机是支持 Java 语言运行的基础,避开过多的 JVM 和实现的技术细节,我们对基础架构进行了解,是进行应用程序优化必不可少的。如下图所示:

图 1. Java 虚拟机体系结构

从虚拟机视角谈Java应用性能优化(2)

时间:2012-02-26 IBM 周祥

类装载子系统:通过类的全限定名(包名和类名,网络装载还包括 URL)将 Class 装载进运行时数据区;

方法区:Class 对于所有方法和 static 静态数据的定义存储在这里,它就像一张表或数组,让程序执行时在这里找到相应方法的 Java 字节码和静态数据;

Java 堆:Java 对象的持久化存储区,从类实例化而来的对象存储在此,垃圾收集也在此进行,若是空

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号