background image

Java程序内存空间优化策略的研究

要: 

Java 类可以直接通过

Java 虚拟机解释执行。然而类文件的规模会直接影响

到程序的加载和运行速度。随着 Java 技术越来越多地被应用在实际系统中,数据的使用量越
来越大,内存空间的优化策略变得非常重要。本文针对 Java 应用程序在运行时占用内存过大
这一突出问题,提出从降低类文件大小和运行时内存占用量两方面的解决方案,并着重分析了
在软件设计过程中通过运用面向对象的程序设计思想,从软件工程的角度上解决内存泄漏的问
题。

关键字: 内存空间优化、扰码处理、内存泄漏、 Java 虚拟机、唯一模式

1. 引言

基于 Java的应用程序在运行时由于受到语言本身的特点和虚拟机的限制,对于客

户端硬件配置的要求相对于 Visual C++ 和

Visual Basic 语言编写的程序要高。虽然

Java 2 对于 JDK虚拟机解释器进行了优化处理,但是仍然不能够完全令用户满意。因此

Java程序的开发人员在对程序代码进行优化时,很自然地将关注焦点放在提高运行性能上

然而, Java程序还可以从另一方面得到优化,即对程序所占用内存空间进行优化。很多
功能复杂的 Java应用程序在运行时由于系统频繁针对内存进行存储交换操作,从而在很
大程度上影响了软件运行的性能。程序中存在的内存漏洞造成了程序通过操作系统消耗内
存,而没有及时进行对内存空间的复用和释放,这最终造成了程序消耗的内存空间逐渐加
大。从软件工程的角度分析,对空间的优化处理主要以两种形式表现出来:降低类文件的
大小和降低程序运行时对内存的占用量。本文将从这两方面提出相应的优化策略。这两方
面的优化策略从实现角度来看可以划分在三个不同的级别上进行:


编译器级:通过类文件的编译优化处理实现;

程序员级;通过内存管理和程序优化处理实现;

优化工具级:通过现有的实用软件工具检测内存使用状况并优化。

2. 类文件的编译优化处理

    在 Java 开发过程中, Java 源代码被编译成一种中间形式,称为字节代码( Java 类
文件),从理论上讲,这种代码是具有平台独立性的,可以运行在任何具备 Java 虚拟机
的计算平台上

[1]

。当然, Java 源代码是以提高可读性为标准的方式编写的。 Java 编

译器的工作就是获得源代码并产生相应的字节码。 Java虚拟机将字节码转换成主机平台

1