• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试之Java性能

发布: 2009-3-17 10:53 | 作者: 不详 | 来源: 测试时代采编 | 查看: 17次 | 进入软件测试论坛讨论

领测软件测试网

2)    依赖语言的方法

为进行客观的分析,最好明确掌握各种运算的执行时间。这样一来,得到的结果可独立于当前使用的计算机--通过除以花在本地赋值上的时间,最后得到的就是"标准时间"。

 

运算示例标准时间

 

本地赋值i=n; 1.0

实例赋值this.i=n; 1.2

int增值i++; 1.5

byte增值b++; 2.0

short增值s++; 2.0

float增值f++; 2.0

double增值d++; 2.0

空循环while(true) n++; 2.0

三元表达式(x<0) ?-x : x 2.2

算术调用Math.abs(x); 2.5

数组赋值a[0] = n; 2.7

long增值l++; 3.5

方法调用funct(); 5.9

throw或catch异常try{ throw e; }或catch(e){} 320

同步方法调用synchMehod(); 570

新建对象new Object(); 980

新建数组new int[10]; 3100

 

通过自己的系统(如我的Pentium 200 Pro,Netscape 3及JDK 1.1.5),这些相对时间向大家揭示出:新建对象和数组会造成最沉重的开销,同步会造成比较沉重的开销,而一次不同步的方法调用会造成适度的开销。参考资源[5]和[6]为大家总结了测量用程序片的Web地址,可到自己的机器上运行它们。

 

1.常规修改

下面是加快Java程序关键部分执行速度的一些常规操作建议(注意对比修改前后的测试结果)。

 

将...修改成...理由

 

接口抽象类(只需一个父时)接口的多个继承会妨碍性能的优化

非本地或数组循环变量本地循环变量根据前表的耗时比较,一次实例整数赋值的时间是本地整数赋值时间的1.2倍,但数组赋值的时间是本地整数赋值的2.7倍

链接列表(固定尺寸)保存丢弃的链接项目,或将列表替换成一个循环数组(大致知道尺寸)每新建一个对象,都相当于本地赋值980次。参考"重复利用对象"(下一节)、Van Wyk[12] p.87以及Bentley[15] p.81

x/2(或2的任意次幂)X>>2(或2的任意次幂)使用更快的硬件指令

 

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网