Java软件的性能测试
作者:李晓慧
来源:《硅谷》2012年第18期
摘 要: Java是一种通用的,并发的,强类型的,面向对象的编程语言。主要针对Java软件的性能测试进行简单的分析和探讨。主要从测试系统设计、Java软件的性能测试以及性能评测方法三方面展开详细的论述。
关键词: Java软件;编程语言;性能测试
Java语言特别强调准确性,但可靠的行为要以性能作为代价。因此,对Java软件的性能测试的探讨有其必要性。
1 测试系统设计
使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,作为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
1.1 Java语言的特性
龙源期刊网 http://www.qikan.com.cn
Java语言的主要特性可以从Java虚拟机、Java API、Java应用程序直接体现出来。1)Java虚拟机,其是在真实机器中用软件模拟实现的一种抽象的机器。(Java虚拟机规范)Java虚拟机主要由五个部分组成:指令系统、寄存器、栈、存储区、碎片回收区解释和执行Java程序编译后产生的字节码。2)Java API,就是Java系统提供的预先定义好的软件组件的集合,它们提供了许多可供程序员调用的常用功能丰富的API为程序员提供了极大的方便,但也是学习者的难点问题。
1.2 Java语言程序
对于Java语言程序的分析,可以从Java应用程序和Java小程序两个方面入手:1)Java小程序,其又可以分为两类,一是Java Apple,简单来讲,就是指在客户端运行的Java小程序,一般来说客户端是指用户所使用的浏览器;一是Java Servlet,主要就是指在服务器端执行的Java小程序。在系统运行过程中,为了支持Servlet的运行,需要将包含Java虚拟机的服务器软件安装在服务器端,因此,在通常情况下,我们也会把这种能够支持服务端小程序的服务器,称为应用服务器;2)Java应用程序,即Java Application,这是一个独立完整的程序,在系统中,通过命令行调,采用独立的解释器软件,这也是程序的入口。
1.3 程序开发
Java语言的开发,首先涉及到的一个主要环节就是JDK的安装与设置,在Windows平台上运行安装程序,以安装JDK设置PATH(文件路径)参数。由于JDK提供的实用程序都在安装目录下的子目录bin下,为了能在任何目录下直接使用文件名调用
龙源期刊网 http://www.qikan.com.cn
这些程序,必须设置操作系统的文件路径参数。另外,在使用JDK实用程序时,必须要对源代码文件进行编译,如果系统提示符再次出现并且没有任何消息产生,那么编译便成功了如果有系统报错消息产生,则表示程序编译出错,程序员必须阅读报错信息,并根据这些信息对程序进行修改程序成功编译后,在与源代码文件同一目录下会生成一个新的文件,其文件名与源代码文件名相同。
1.4 线程
在Java程序中,线程作为一个单一的顺序控制流程存在于其中。线程类似于传统的顺序程序,都有一个执行的起点,经过一系列指令后到达终点。线程在执行过程中的任何时刻只能有一个执行点线程组可以将多个线程集中在一个对象中,并同时操作这些线程(比如全部挂起或杀死)所有的Java线程都是某个线程组的一员。当Java应用程序开始执行时,虚拟机会创建一个名为main的线程组如果程序没有显示地创建其他线程组并将线程设置其中,则所有的线程都是main线程组的成员。
2 Java软件的性能测试
在进行Java软件性能测试时,需要在其内部建立一个评测程序,结合系统运行平台,实时跟踪例例程的时间,同时,还要将所得到跟踪评测结果完整地写入一个文件中。但是在测试过程中,一定要保证评测器的稳定性,否则将会影响到Java软件的正常勤工作,严重时,还要影响到后续版本的正常运行和稳定性。要从真正意义上理解上评测程序所测出结果以及相关信息并不容易,为此,就要对Java开发环境有一个全面的分析和了解。
龙源期刊网 http://www.qikan.com.cn
在Java开发环境中,主要是由java.io所提供的一系列的类和接口来实现信息的输入、输出处理。而标准输入、输出处理则是由java.lang中提供的类来处理的,这些类又都是从包java.io中的类继承而来的。I/O类提供了低层次和高层次的界面。每一种介质都有一对与之相关联的输入输出类,它们提供低层次的面向数据序列(字符、字节)的界面。与介质相关的各个类都分别是输入输出抽象流类的子类,它们通常具有与介质相关的构造器及方法。I/O抽象类为所有与介质相关的具体输入输出类提供了一个统一的界面。反过来各个具体的与介质相关的输入输出类也扩展了抽象类,通过它们可以实现在具体介质上的输入输出操作。
另外,JAVA编程语言还提供了一个访问控制机制,通过这种机制,可以决定那些其它的类可以直接访问它的变量,并且通过介质提供一种低层次的方法将数据输入或输出到相应的介质;将与介质相关的对象强制类型转换为它的父类,并利用该对象构造一个流对象。这样便建立起了流类对象与介质相关对象的关联;这时就可利用流对象的I/O方法进行相应介质上的数据读写。
3 性能评测方法
首先,在进行评测时,由于要用到系统时钟,所以,要避免其他应用程序以及其他任何进程的运行,确保测试结果的准确性。若是对程序进行了相应的修改,需要要要在修改前后,对代码的执行时间进行分别测试,从而准确测试出改善后的性能。但是在测试的过程中,要注意的一点就是要保证每一次时间测试尽可能在完全一致的时间内,在必要时,可以设计一个完全独立的测试,将测试结果控制在最精准的范围内。
龙源期刊网 http://www.qikan.com.cn
其次,运行提速。在测试过程中,首要问题是隔离性能瓶颈,一般情况下,主要有两种方法。其一,常规手段。这种方法就是对程序重新定义,是一种极为现实的提速方法。而且,此方法在应用过程中,不仅算法精确,而且还会使得软件性能得到更大的提升,尤其是数据集尺寸不断变大的过程中,其优点就会更加明显。其二,依赖语言的方法。这种方法,需要对软件各种运算执行时间有一个全面的掌握,从而进行客观分析和评价。
此外,Java编程语言允许通过改变方法参数的数量和类型来重载方法,也可以重载父类中的方法。在编写与父类方法同名的方法时,一定要注意检查返回类型和参数列表,确保正确的重载或者覆盖。
4 总结
总而言之,Java软件要想全面进行,就要对程序进行正确完整地检测,并且通过现实环境,着手解决性能问题,优化软件程序,提高程序效率。
参考文献:
因篇幅问题不能全部显示,请点此查看更多更全内容