首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于JPDA的Java软件性能测试

作者:贺蕴彬 来源:电子技术与软件工程

摘 要

随着计算机技术的快速发展,JAVA技术成为信息领域中的重要角色,JPDA是Java技术的平台调试体系,由Java虚拟机工具接口、Java调试连线协议和Java调试接口三部分组成,本文通过TPTP测试工具,在JPDA平台中对Java软件进行性能测试,并对测试结果进行相关分析。

【关键词】JPDA Java软件性能 测试

近年来,随着信息技术的不断提升,人们对于软件的需求也越来越高,进而关于计算机软件的开发以及应用也更加广泛。为了更好的开发系统软件,实现软件开发的广泛利用,其中,研究基于JPDA平台的Java软件性能具有重要的现实意义。

1 JPDA的含义

JPDA由Java虚拟机工具接口、Java调试连线协议和Java调试接口三部分组成,JVMTI定义了虚拟机应该提供的调试服务,包括调试信息、调试行为以及通知,JPDA调试平台向Java虚拟机请求服务进行调试。该接口与虚拟机结合实现,为了实现远程调试服务,调试者可以使用的调试接口,Java语言以及Java软件可以实现该接口直接访问虚拟机调试服务。

Java根据其语言规范,由各个相应的虚拟机来定义统一的内存管理模型,在Java的内存模型中,Java是平台无关性语言。Java平台释放和回收内存不用程序员显示操作,是其最大的特点。Java内存模型设计时考虑的最多的因素是方便技术开发人员,也适当的使虚拟机的复杂程度有所增加,因此导致了虚拟机执行有关代码优化时会出现问题。Java内存模型在设计时,由技术人员专门定义了线程访问的规则,因此,开发人员只需要在相应的代码段给出信息,虚拟机就可以实现较为复杂的解锁和加锁。

Java内存模型主要有主内存和工作内存组成其线程访问内存。主内存主要负责类实例和静态数据的存放,每个线程都可以在主存中访问,并且有一个私有的工作内存,这个私有的内存其他线程不能够使用和访问。所有线程和访问方法都是从主内存中拷贝出来的变量和一些局部的变量,均是先从主内存中拷贝出来,然后在工作内存中进行操作。各个线程是独立的,要想相互读取就必须通过主内存。

2 基于JPDA的Java软件性能测试

Java语言是实现智能设备的重要程序设计语言,借助TPTP对Java软件进行性能测试, Java语言的两个重要特点是垃圾的回收机制与程序运行效率。因此,测试主要以这两点为重。

JPDA为Java软件性能测试提供了一个完善的功能平台,许多测试工具,譬如Eclipse测试以及TPTP性能工具平台,都是其中重要的性能测试手段。基于JPDA平台,TPTP提供完善的性能测试功能,TPTP以Eclipse框架为基础,能够实现软件代码,TPTP操作起来十分便捷,在进行性能测试时,只要设置了测试项目,就可以自动开始测试。

本次测试示例是由两段代码组成,这两段代码的功能基本上完全相同,测试后,对结果进行分析,可以得到Java进行程序设计时的有利结论。

代码段A的基本结构:

1 Objclassobj=newObjclass();

2 for(inti=0;i

3 obj.doSomeI0()

4}

代码段B的基本结构:

1for(inti=0;i

2 Objclassobj=newObjclass();

3 obj.doSomeI0()

4}

两段代码利用对象完成象征性的输入、输出操作,实现创建Java对象的功能,在程序退出后,Java虚拟机会回收占用的内存资源,两段代码都不会浪费内存,两段代码在功能方面基本形同。

在通过TPTP测试平台时,将代码中的循环次数N分别取值1000、5000、10000、15000进行测试,这样可以有效减少测试误差,对两段程序的运行所需时间以及内存进行测试。检测代码性能的主要依据为测试结果数值之间的相对稳定关系。图1表示程序运行内存需求量对比。

由上图可知,程序循环次数不断增加,对内存资源的消耗出现近似线性增加的是在循环外创建Java对象的程序,相对于在循环内部创建对象而言,消耗的内存资源更多。

另外,同样执行一次输入、输出操作,在循环内创建对象的程序运行速度比循环外创建Java对象的程序运行更慢,设计策略需要的时间更长。

因此,从测试结果我们可以得出在进行创建对象的过程中,运用Java垃圾回收机制,要尽量合并相同请求,在反复创建相同的对象时,相同对象的复用能够节省更多的资源,还能使功能划分显得更为清晰,进而提升程序运行效率,优化系统性能。也可以使逻辑变得更简洁。

3 结语

本文基于JPDA对Java软件性能进行测试,对测试结果进行分析得出,相对于在循环内部创建对象而言,消耗的内存资源更多,同样执行一次输入、输出操作,在循环内创建对象的程序运行速度比循环外创建Java对象的程序运行更慢,设计策略需要的时间更长。所以说,在进行Java程序设计时,创建对象的过程中,运用Java垃圾回收机制,要尽量合并相同请求,在反复创建相同的对象时,相同对象的复用能够节省更多的资源,还能使功能划分显得更为清晰,进而提升程序运行效率,优化系统性能。

参考文献

[1]朱真雾.基于JPDA的Java软件性能测试[J].信息通信,2013,(6):93-93.

[2]肖云鹏,王佐成,李茜等.基于Java的嵌入式软件性能改进[J].重庆邮电大学学报(自然科学版),2010.

[3]张颖,黄罡,刘儇哲等.一种支持Java应用中计算按需远程执行的方法[J].软件学报,2013.

[4]刘,范彬,吴承勇等.数据流Java并行程序设计模型的设计、实现及运行时优化[J].软件学报,2009.

[5]钱宇虹.浅析Java程序I/O性能的改进策略[J].软件工程师,2013,(11):25-26,22.

[6]王瑞瑞.基于Web Services的MO2GO流程助理系统的设计与实现[D].哈尔滨工业大学,2010.

作者单位

昭通学院信息科学与技术学院 云南省昭通市 657000