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

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

软件性能问题的两点分析

发布: 2010-8-02 10:04 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 128次 | 进入软件测试论坛讨论

领测软件测试网

  软件性能问题的两点分析  软件测试

  新的一年又要开始,深思了自己一年的工作,总结了一些问题,与大家交流

  第一、程序编写过程中非优化语句

  编写高性能代码有很多要注意的东西,因为我关注的是数据库方面的,所以会从SQL语句方面的优化来说一下,程序员在编写代码的时候因为水平不同,并且没有考虑数据库中数据量的问题,编写的代码在功能测试时是没问题,但当进行稳定性测试的时候,数据库中有很多测试数据的情况下,系统的性能下降就很明显了。比如一个新闻表中,有ID,NEWS,DATE,CLASSE,AUTHOR这样几个字段,ID是主键,每天大概有2000条的增量,每年有72万条的增量,这样一条语句 select * from table where class ='1',可以看到就是

  建立了索引,该表还是进行全表扫描,当运行一年后,系统的速度大家就可以相象了。

  还有一些需要用存储过程的,也是在程序中编辑SQL语句,该使用绑定变量的也没有使用绑定变量,等等问题。

  第二、结构设计不合理造成的性能问题

  我发现这类问题是造成性能问题最多的,也是性能调优的重点,通过对结构的调整,性能变化也最明显。结构设计包括程序结构设计和数据结构设计,这两部分一定要综合考虑,但我发现大多数的软件对程序结构设计偏重的多,对数据结构设计考虑的不是太充分,在下面的例子中我会说明。

  例子一:GIS在线编辑图形

  在ARCGIS SERVER 9中提供了通过WEB程序来编辑图形的功能,但它的工作机制是,只要客户端启动了编辑功能,后台ARCGIS SERVER就要启动一个进程(类似与启动了一个ARCMAP),所以对后台的性能压力是非常大的,特别是CPU。如果程序在结构设计的时候没有考虑这些问题,当较多的用户进行图形编辑的时候,系统就会崩溃。事实也确实是这样,当进行性能压力测试的时候,在5个用户压力下,WEB服务器、数据库服务器的压力都非常小,而ARCGIS SERVER已经几乎不能运行了。这部分的设计应该借鉴中间件的思路,简历一个一直运行的进程,设立一个最大数,当用户有图形编辑的要求时,就把请求发到进程池中,如果有空闲的进程就直接利用空闲的进程,否则就等待。

  例子二:大文件的上传

  在一个《企业信息门户》中,允许用户上传一些资料,在数据库设计中,这些资料是保存在一个表中的BLOB字段中,并且有一个编号ID做主键,这样在用户量比较小的时候是没有问题的,当用户数比较大时,并且并发比较大时,对ORACLE的内存占用很大,并且因为有索引,插入时还要更新索引,开销更大,如果把文件保存到硬盘上而不是保存到数据库中,随说磁盘的IO速度较慢,但因为是网络的文件传输,网速有限制,这样比存到数据库中的性能要提高很大。

  例子三:大数据表问题

  在一个关于“测井曲线”成图的系统中,因为是把各个点生成曲线,数据量非常大,这样造成一个表非常大,在进行数据结构设计时,对该表的容量没有充分考虑,造成程序运行一段时间后非常慢,把大数据表进行分区后,效果非常明显。

延伸阅读

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

TAG: 软件 性能


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

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