软件设计:决定软件性能的奥秘

大家更多的是关注测试工具,测试技巧,而少有人去从根本上来分析、测试软件。一个优秀的软件性能测试工程师要具有宏观和微观的软件测试观。他要分析软件的
架构,了解软件的运行模式,了解通讯协议,更是一个软件开发高手。就象一个医生,他要通过多年的深造和摸索,要了解病理、药理,他才能对症下药,好了,不
多说了,说一下软件设计对软件性能的影响。这是我遇到的一些实际的例子。


例子一:一个网站,允许注册用户可以上传一些图片、文档、影音文件,把这些文件做为大二进制文件存储到数据库中。功能并不是太复杂,软件的功能测
试没有问题,开始进行性能测试。5个用户的并发都没有通过,功能出错了,性能测试也就进行不下去了,分析原因,原来软件设计的时候,为每一个上传的文件设
计了一个“ID”字段做为主键,该字段是自增的,在ORACLE数据库中没有自增字段,需要编写触发器来自增,但是软件开发人员在应用程序中编写了一个函
数,在上传文件前从数据库中获得最大ID,然后加一,再填写其他信息,选择文件,上传,这样在多用户使用的时候必然造成ID字段值重复,系统必然出错。这
个错误修改后,进行性能测试,设计者把所有的上传文件都保存到一个数据表中,他没有考虑网站的流量和上传文件数量很多的情况,结果在进行数据库压力测试的
时候,当数据库中有10万条记录时,假设每个上传文件的大小是1M,该数据表的查询、备份、恢复都非常困难,当多用户浏览、上传这些文件时,性能严重下
降。这就是一个软件设计存缺陷。



例子二:一个图形管理软件,架构采用的是B/S模式,通过在IE中嵌入ACTIVX控件,根据从数据库中读取出的测量点数据,在ACTIVX中绘制
成各种曲线,该测量点数据是井的数据,每米取10个点,每点有16条数据,每口井的井深平均按5000米算,500口井的数据就非常庞大了。在性能测试的
时候,我首先分析了软件的运行机制,客户端发出请求--WEB服务器(分析)--读取数据库数据--生成HTML和数据流返回客户端--客户端控件根据点
数据绘制成曲线。从这些过程中看性能的瓶颈应该在WEB服务器和数据库间。(ACTIVX控件有的性能测试工具不支持,但协议可以看成是HTTP,并可以
看成是一次请求),因ACTIVX运行在客户端,这部分的性能主要是受客户端影响。在性能测试过程中发现,性能真的是受数据读取速度的影响,更可怕的是,
该数据库竟然没有设置索引,设置索引后,软件开发人员竟然在索引字段用了trim()函数来去掉空格,造成索引字段没有起到作用,汗一个!!!!。

从上面的例子可以看出,设计才是决定性能的关键。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空