51Testing丛书:性能测试进阶指南—LoadRunner 11实战(5)

发表于:2012-5-10 11:14

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈霁    来源:51Testing软件测试网原创

  2.操作系统

  操作系统作为与硬件的交互层,它的性能决定了在操作系统下运行的应用的性能。对于操作系统的调优主要是在硬件支持和自身开销上体现的。

  在Windows Vista中内存管理和文件系统方面引入了SuperFetch技术,可以把经常使用的程序预存入到内存,提高性能,此外你的后台程序不会夺取较高的运行等级了,不用担心突然一个后台程序运作导致你前台任务动弹不得。所以在使用Vista及Win7的时候会发现内存占用率相对以前的操作系统有所上升。这是一种更加合理使用空闲内存的策略,通过这种策略可以大幅提升我们访问常见应用的响应时间。除此以外一般新版本的操作系统都会对新硬件提供更好的支持,从而最大化发挥硬件本身的性能,例如在Win7中支持固态硬盘的 Trim命令,并且会禁用SuperFetch、ReadyBoost,以及启动和程序预取,这些功能都是针对传统硬盘设计的。?

  对于新版本的Windows Sever系列操作系统,除了前面硬件支持以外也会提供对应组建的更新,从而实现性能的优化,例如,IIS的版本升级。

  除了操作系统的更新以外选择合理的操作系统平台也会极大地影响系统性能,我们常见的操作系统平台一般为I386和x86-x64。I386通常被用来作为对Intel(英特尔)32位微处理器的统称。而x86-64可在同一时间内处理64位的整数运算,并兼容x86-32架构。通常为了更好地支持大容量内存(32位系统只能寻址4GB内存),我们都会选择64位系统,但是由于我们使用的CPU都是兼容模式,所以并不会非常明显地体现出64位系统在处理能力上的提升。而不同操作系统所能提供的TCP/IP连接上限也是不同的,这也是家用操作系统和服务器操作系统的区别之一。

  所以从性能角度考虑在操作系统的选择上我们一般会尽可能选择最新版本,再选择64位系统完成对硬件的支持,但从功能、稳定性、可靠性角度考虑,作为服务器我们不应该选择太新、没有广泛使用的操作系统。这也是2012年伦敦奥运会会选择Windows Vista操作系统作为官方主要操作系统,而不是选择更好的Win7操作系统的原因。

  而Linux或UNIX作为一个多用户多任务操作系统,强大、稳定的安全机制及高效客户端,使得选择它作为服务器操作系统成为更加主流的策略。而Windows Server系统为了弥补自己华丽桌面的开销也提供了只有Power Shell端的简化服务器Core核心版本,减小桌面的资源开销。

  对于操作系统的性能测试并没有有效的方法,只能通过在系统上进行硬件、软件配置测试来模拟对比。

  3.服务/框架

  我们的代码通常都是运行在服务或者框架下的,例如,Java语言就需要JVM环境作为底层框架才能运行,而C#需要.NET框架。而正是因为框架原因为了兼容平台导致了运行效率的低下,而C语言或者汇编语言由于自身可以直接与硬件交互,从而获得了超强的处理能力。

  随着Java语言的JVM版本提升性能已经有了极大的提高。据IBM的统计数据,在同样的硬件上2001年时的IBM?JDK版本的性能是1996年的JDK版本的10倍左右。而即使是在同一时期,不同公司的JDK和JRE的性能也不一样,比如SUN、IBM、BEA等公司都有自己开发的JDK和JRE。而现在的JVM在采用了Just-In-Time(JIT)编译器后,程序的运行性能在很多JVM下可以与本地编译的程序一争高下,甚至在一些计算比较密集的数值计算领域也是这样。目前,Java已经使用更先进的HotSpot技术来代替JIT技术,Java的性能有了更进一步的提升。另外,在使用-server选项运行Java程序时,也可以对Java进行更深入的优化,比如在运行时将调用较多的方法内联(inline)到程序中来提高运行速度,这就是所谓的“动态优化”,而本地编译器是无法做到这一点的;这也是一些Java代码比对应用C/C++等语言编写的本地代码运行得更快的原因之一。微软的.NET平台也使用JIT编译器,所以也有类似问题。

  而在服务平台我们一般分为表示层、业务逻辑层和数据访问层,每一层服务上又会有不同的性能区别。

  表示层用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面,通常是指我们的Web服务器,而最常用的就是Apache。Apache可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,但是Apache也有自己的缺点,所以在行业中会有针对性的Lighttpd和Nginx作为替代品出现。Lighttpd是一个单线程的针对大量持续连接做出专门优化的Web服务器(这正是多数高流量网站和应用程序需要的),而Nginx对静态页面的支持相当出色。IIS由于它只是为了支持微软的ASP.NET技术存在,并且包含表示层和应用层,所以相对来说没有多余的选择余地,只有等待微软自身版本更新来获得更好的性能。

  业务逻辑层的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也就是说它是与系统所应对的领域(Domain)逻辑有关的,很多时候,也将业务逻辑层称为领域层。在业务逻辑层上我们会有比较多的服务选择,包括PHP、JBoss、Tomcat、WebLogic、WebShpere等。PHP包括两种运行模式,即CGI模式或者Apache整合模式,其中Apache模式相对来说更为稳定,再通过Zend编译和运行优化可以进一步提升25倍的性能。而对于Java的运行效率来说WebShpere>WebLogic>JBoss>Tomcat。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号