Java内存空间利用研究

Java内存空间利用研究

ID:46460648

大小:55.50 KB

页数:8页

时间:2019-11-24

Java内存空间利用研究_第1页
Java内存空间利用研究_第2页
Java内存空间利用研究_第3页
Java内存空间利用研究_第4页
Java内存空间利用研究_第5页
资源描述:

《Java内存空间利用研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java程序内存空间优化策略的研究徐鹏清华大学计算机系(E-mail:xpalkeg.cs.tsinghua.edu.cn)扌商要:Jav“类可以直接通过Java虚拟机解释执行。然而类文件的规模会直接彩响到程序的加载和运行速度。随着Java技术越来越多地被应川在实际系统中,数据的使用量越来越大,内存空间的优化策略变得非帘重要。本文针对Java应用程序在运行时占用内存过大这一突出问题,提出从降低类文件大小和运行时内存占用量两方面的解决方案,并着重分析了在软件设计过程中通过运用面向对象的程序设计思想,从软件工程的角度上解决内存泄漏的问题。关键字:内存空间优化、扰码处

2、理、内存泄漏、Java虚拟机、唯一模式1.引言基于Java的应用程序在运行时由于受到语言本身的特点和虚拟机的限制,对于客户端换件配置的要求相对于VisualC++和VisualBasic语言编写的程序要高。虽然Java2对于JDK虚拟机解释器进行了优化处理,但是仍然不能够完全令川户满意。因此Java程序的开发人员在对程序代码进行优化吋,很自然地将关注焦点放在提高运行性能上。然IflhJava程序还nJ以从另一方而得到优化,即对程序所占用内存空间进行优化。很多功能复朵的Java应用程序在运行时由于系统频繁针对内存进行存储交换操作,从而在很大程度上影响了软件运行的性

3、能。程序中存在的内存漏洞造成了程序通过操作系统消耗内存,而没有及时进行対内存空间的复用和释放,这最终造成了程序消耗的内存空间逐渐加人。从软件工程的角度分析,对空间的优化处理主要以两种形式表现出來:降低类文件的人小和降低程序运行时对内存的占川量。木文将从这两方面提出相应的优化策略。这两方面的优化策略从实现也度来看可以划分在三个不同的级别上进行:•编译器级:通过类文件的编译优化处理实现;•程序员级;通过内存管理和程序优化处理实现;•优化工具级:通过现有的实用软件工具检测内存使用状况并优化。2.类文件的编译优化处理在血羽开发过程屮,血va源代码被编译成一种屮间形式,称

4、为字节代码(J"类文件),从理论上讲,这种代码是具有平台独立性的,可以运行在任何具备Java虚拟机的计算平台上Hlo当然,血va源代码是以提高可读性为标准的方式编写的。Java编译器的工作就是获得源代码并产生相应的字节码。Java虚拟机将字节码转换成主机平台的本地代码。在Web环境F运行Applet程序Z前,类文件首先必须被下载到客户端。类文件越人,程序下载时问越长。特别是对于网络外不发达的地区,由于网络的传输速度较慢,因此这种问题表现的更加突出。从编译的角度入手,我们可以采用以卜-三种方式来降低类文件的人小:1.便用Java编译器的优化选项在缺省条件下,JDK

5、捉供的javac编译器牛成的类文件包含程序行号信息(加入行号信息的作川是便于川户进行调试,同时在程序运行时如果出现例外,则解释器会利川行号信息显示出例外发牛•的行号)。如果使用・g选项进行编译操作,那么类文件也包含变量调试信息。这些额外的数据在类文件屮占据了一定比例。通过使用-0选项启动编译优化器进行编译,则可以强制jawc编译器删除这些额外数据。这种优化选项也可以造成jnvac编译器删除一些兀余的代码,但是同时它也内嵌一些方法用于改进性能(这些方法也占据了类文件的-•定空间)。与一个标准的C编译器不同,javac的一0选项在优化方面所作的工作还非常有限。2.以

6、Java档案文件(JAR文件)的形式对类进行压缩处理从Java1.1开始,JDK就提供了生成Java档案文件(JAR文件)的功能。这种经过压缩处理的文件中包含了Java类,其压缩方法基于ZIP压缩格式。档案文件的使用显著地降低了类文件所占•用的磁盘空间,例如标准的Java类库经过压缩处理后所占用的磁盘空间从8.63MB降低到5.03MBo这是一种最简单也是最有效的降低类文件所占空间的方法。此外,因为档案文件将多个类打包在一个文件里,因此在Applet下载过程中只涉及了一次FTP事务处理,因此下载时间人大加快了。开发人员可以使用JDK提供的jar工具來住成JAR文

7、件。例如,jar-cfclasses.jar*.class命令实现了将-当前目录屮所有类文件對•装成JAR文件的功能。在HTML文件中的APPLET标签支持ARCHIVE参数,该参数的取值为当前Applet程序中所使用的JAR文件路径。如果我们在一个Java应用程序中引用JAR文件,则我们必须在系统环境变量CLASSPATH中加入JAR文件的路径。3.使用扰码处理技术降低空间占用量。Java解释器实现対类的动态链接,也就是说,解释器并不是一次将所有类进行加载,而是在运行时遇到类引用吋才对其进行加载。正是由于这个原因,每个类文件必须包含标识符的名称。这就导致了可能

8、由于标识符名称过于兀长而

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。