`
wsql
  • 浏览: 11780921 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

软件设计是决定软件性能的关键

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

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

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

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

分享到:
评论

相关推荐

    软件设计规范

    软件设计必须有自说明特性。不能对文档产生依赖性。软件代码中合适的地方,需要对文档进行恰如其分说明。原则是,每段代码,每处需要理解的地方,如果和总体架构相关,就要有说明。 软件领域需要简化。需要还原软件...

    图书管理系统(软件工程课程设计报告).doc

    引言 1.1编写目的 编写本报告的目的是明确本系统的详细需求,供使用单位确认系统的功能和性能,并 作为软件设计人员的设计依据和使用单位的验收标准。 1.2工程背景 图书馆人员结构复杂,人员数量有限,涉及方面很广...

    软件工程知识点

    (6)工程目标:开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高, 软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。 (7)工程文化:包括工程价值、工程思想和工程行为三个方面的...

    1Java性能优化一.zip

    在软件开发之前,系统架构师应该就评估系统可能存在的各种潜在问题和技术难点,并给出合理的设计方案,因为软件设计和系统架构对软件总体设计质量有决定性的影响。所以,设计调优对系统的性能影响也是最大的,假设说...

    软件定义汽车综述:中央计算单元架构和高性能计算单元架构

    今天讨论的重点不是EEA架构,而是其中最关键的部分,中央计算单元,不管是按区域的架构,还是以后的纯中央计算平台,其硬件构型从根本上决定了软件架构的设计方向。中央计算单元可以分为以下三种形态:分离式硬件...

    ADS设计与仿真射频功率放大器的教程

    对发射机系统的性能指标起着关键作用,功率放大器在整个无线通信系统中是非常重要的一环,因为它的输出功率决定了通信距离的长短,其效率决定了电池的消耗程度及使用时间,所以设计性能指标良好的射频功率放大器有着...

    软件资料文档标准规格

     ◇ 用户操作手册:本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。  ◇ 测试计划:为做好集成测试...

    软件架构师应该知道的97件事总结

    架构决定性能 分析客户需求背后的意义 起立发言 故障终究会发生 我们常常忽略了自己在谈判 量化需求 一行代码比五百行架构说明更有价值 不存在放之四海皆准的解决方案 提前关注性能问题 架构设计要平衡兼顾多方需求 ...

    软件测试规范

    软件测试规范 目 录 一.概述 ............................................................................................................................................................ 1 二 软件...

    数据库应用系统的开发过程.pptx

    程序设计者要通过对开发项目信息的收集,确定系统目标、软件开发的总体思路及所需的时间等,最终决定软件项目可行性。 2.设计 设计阶段的主要任务是解决待开发软件"怎么做"的问题。设计通常可分为总体设计和详细...

    计算机测控测控系统设计.pptx

    总体方案/初步设计 决定系统的成本、性能、设计与开发周期 调研任务 调查确定系统规模:对象 测控范围(地理分布):一台设备、工段、车间、企业 了解工艺流程/工作过程:图形文字描述 确定系统任务/目标 生产工艺...

    图像清晰度评定软件 EIR 0.2

    自动聚焦是机器人视觉、数字视频系统中的关键技术之一,是决定图像质量的重要因素,是获取清晰图像的第一步。聚焦性能取决于调焦评价函数的准确性和有效性,即评价函数必须具有无偏性好、单峰性强和较好的抗噪性能...

    毕业设计-基于JSP+SSM的固定资产管理系统-设计与实现(源码+论文+视频).zip

    整体设计,只是一个初步设计,而且,对于一个项目,我们可以进行多个整体设计,通过对比,包括性能的对比、成本的对比、效益的对比,来最终确定一个最优的设计方案,选择优秀的整体设计可以降低开发成本,增加公司...

    毕业设计-基于JSP+SSM的农产品供销服务系统-设计与实现(源码+论文+视频).zip

    整体设计,只是一个初步设计,而且,对于一个项目,我们可以进行多个整体设计,通过对比,包括性能的对比、成本的对比、效益的对比,来最终确定一个最优的设计方案,选择优秀的整体设计可以降低开发成本,增加公司...

    毕业设计-基于JSP+SSM的列车票务信息管理系统-设计与实现(源码+论文+视频).zip

    整体设计,只是一个初步设计,而且,对于一个项目,我们可以进行多个整体设计,通过对比,包括性能的对比、成本的对比、效益的对比,来最终确定一个最优的设计方案,选择优秀的整体设计可以降低开发成本,增加公司...

    计算机辅助工业设计中的人机交互.doc

    为了确保工业设计在质量和数量上能够更好的发展,计算机辅助工业设计中的建 立人机交互,成为了工业设计中的关键要素。 该文基于提出了计算机辅助工业设计的由来,继而提出计算机辅助工业设计中人 机交互的概念与...

    基于DDS+PLL高性能频率合成器的设计与实现

     频率合成器是决定电子系统性能的关键设备,随着通信、数字电视、卫星定位、航空航天、雷达和电子对抗等技术的发展,对频率合成器提出了越来越高的要求。频率合成理论自20世纪30年代提出以来,已取得了迅速的发展,...

    毕业设计-基于JSP+SSM的宜佰丰超市进销存管理系统-设计与实现(源码+论文+视频).zip

    整体设计,只是一个初步设计,而且,对于一个项目,我们可以进行多个整体设计,通过对比,包括性能的对比、成本的对比、效益的对比,来最终确定一个最优的设计方案,选择优秀的整体设计可以降低开发成本,增加公司...

    单片机应用系统的可靠性设计.doc

    单片机应用系统的可靠性是由多种因素 决定的,大体分为硬件系统可靠性设计和软件系统可靠性设计。 一、硬件系统可靠性设计 (1)选优设计 在系统硬件设计和加工时,应该选用质量好的接插件,设计好工艺结构;选用...

    旅游管理系统课程设计.doc

    实验内容 主要解决实现该系统需求的程序模块设计问题(包括如何把该系统划分成若干个模块 、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计 等)。 实验步骤 1. 首先确定系统总体设计...

Global site tag (gtag.js) - Google Analytics