Java有移植性好和其它很多优势, 但用在手机上, 速率和功耗仍是个瓶颈。 Java带来的新问题是执行速度慢, 消耗功率大。 与PC不同的是, 手机资源有限, 一般流行的手机中CPU的速率为26MHz, 或52MHz,带128M闪存, 8Mb, 16M 或64Mb内存, 没有硬盘, 由电池供电, 体积小, 空间窄。 系统慢的原因是:
(1) 系统必须同时运行两套软件: Java应用和虚拟机JVM;
(2) Java软件需要被翻译成自然CPU指令;
(3) Java平台是基于栈(相对于寄存器)结构的, 导致更多的内存存取。
因而, 如何对执行 Java加速成为关键。 加速处理数据和图形, 这对手机上互联网和多媒体的应用具有重要意义。 要克服这些问题, 提高Java软件性能, 可能的方法有四种:
(1) 提高微处理器速率。 然而Java软件性能与时钟频率并不成线性关系, 微处理器运行一般比内存存取时间高2-10倍, 增加时钟频率只会增加等待周期。
(2) 对JVM软件进行优化。 这可能涉及到要用汇编语言对字节码翻译环路进行编程, 而这会导致JRE变得与微处理器类别有关。 而与可移植相抵触;
(3) 编译。 将软件直接编译到微处理器的自然机器语言。 但是这会增加内存的开销, 也不节省能量的消耗。
(4) 采用基于硬件的加速器。 这可以做到提高性能, 保障能量和成本的有效性。 被手机设计厂商认为是较理想的措施。 通用型Java加速芯片于今年年初问世。
3.2 分析Web/Wap应用服务在客户端性能的测试
Web/Wap应用服务在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、大数据量测试和速度测试等,其中并发性能测试是重点。
并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。
我们公司自己组织力量同时委托第三方软件HG公司开发Hawa网站的一套应用Avatar形象系统的时候, Avatar形象在网站业务中占有着重要的位置,网站上的很多业务都是围绕Avatar开展。 这套系统能不能承受大量的并发用户同时访问? 成为这个网站能否成功的关键,也是这次两个公司合做开发能否顺利完成的关键。这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、Web浏览和视频点播等系统。这种问题的解决要借助于科学的软件测试手段和先进的测试工具。
Web软件测试实例说明:哈哇网站Avatar形象系统软件。Avatar形象系统在上线试运行三个月后,所有的功能测试顺利完成,软件功能缺陷也修改完毕。但是,性能问题越来越成为项目经理关心的焦点,我们测试部门借助比较熟悉的压力测试工具Web Stress 实施客户端性能测试进行100,500,1000等并发用户访问。每次测试主要在基于URL:http://avatar.hawa.cn /index.JSP的基础上,与HG公司实时交互地进行多种情况下的测试。按照HG公司要求主要针对并发数为1000和500的情况下,尽量准确的对 Avatar系统的性能压力进行模拟测试;并排除所有不是从web服务器(即avatar.hawa.cn)上得到的URL,即只对/index.jsp 等页面进行测试。三次结果后,尽管程序优化、运行服务器配置多次修改,仍然存在用户量并发数达到1000,服务质量下降,页面方面时间超过正常显示时间。这里有最后一次测试结果与前几次大致相同。但是本次测试,是用多客户端测试,按原理是应该比以前的单机测试准确度要高,但其结果是比用单机测试的时间还要长,当并发数达到1000时,其页面的最长响应时间在80多秒(而单机测试时时59秒多)!第三次又发现ISP网络100MB带宽实际上不到20MB,也是影响用户服务的关键因素之一。
原文转自:http://www.uml.org.cn/Test/200609065.htm