`
greennetboy
  • 浏览: 68558 次
文章分类
社区版块
存档分类
最新评论

实现性能目标的几种方法

阅读更多
 第一次在这里写BLOG,希望不要被大家取笑!
一. 调整程序代码
1.避免多次读取相同数据
    在循环语句中不要包含无端重复执行的代码,如:
while ( dr.read())
{
  if(dr.item["lastname"]==Request.params[“lastname“])
  return true;
 else
return false;
}
在上面循环中,对于DataReader返回的每条记录都要对Request.params[“lastname“]进行一次求值,假如dr返回100条记录,我们就对Request.params[“lastname“]求值了100次 ,而这100次有99次都是多余的,下面的代码相对效率就高些
string strlastname=Request.params[“lastname“];
while ( dr.read())
{
  if(dr.item["lastname"]==strlastname)
return true;
 else
return false;
}

总结:从任何类型的集合中读取值都比较慢,我们需要多次访问它时,可以先在局部变量中保存一个副本

2.对连接字符串使用Response.Write();
连接字符串是一个很费资源的操作,我们要把一个10字节的字符与一个30字节的字符连接起来,代码必须分配一个40字节的内存区域,复制所有字节到这块区域,然后在调整指针位置指到这块区域,在释放原来资源而Response.Write()方法提供了高效的缓冲和连接服务,所以一般情况下以下代码
Response.Write(“HeadLine=“);
Response.Write(“strHeadLine“);
Response.Write(“,Descreption=“);
Response.Write(dr.item[“Descreption“]);
比下列代码
Response.Write(“HeadLine=“)&_
StrHeadLine&_
“,Descreption=“&_
dr.item[“Descreption“];
效率要高
总结:尽量用Response.Write()和StringBuilder来连接字符串
3.避免频繁调用COM组件转为托管代码.
4.避免改变数组维数
在程序中动态改变数组维数其实是用请求大小创建一个新的数组,拷贝原来数组中内容到里面,然后删除原来数组,并用新数组代替旧数组地址,这就耗费了很大力气
5.不要过分依赖于代码中的异常检查
异常处理是很消耗资源的操作,对于普通代码能检测到情况,就应尽少使用异常处理
如try
{
int a,b;
a=100/b;
}
catch
{
b=0;
}
就不如用以下代码效率高
if(b==0)
{
error();
}
效率高
总结:应尽少量的使用异常处理机制
6。应该实现尽早绑定防止后期绑定,做法为在WEB页的@Page指令中加入O ption=“Strict”这一选项可以防止在数据转换时都是数据
二。调整ASP.NET的使用
 1.禁用调试和跟踪模式
在部署产品级应用程序时,用这两个模式会显著降低性能
 2.预先在Application 对象中载入数据
把一些频繁使用的又相对静止的数据通过一次性读取数据载入Application 中可以提高程序的性能 Application对象一旦建立九一直保存在内存中,直至程序结束,对于WEBl来说就是服务器关闭,但把
几Mbyte的数据存在Application中不是什么好的选择了
 3.用Page.IsPostBack来避免不必要的处理
在实际表单提交时没有必要运行初始化代码,ViewState机制会保存我们任何表单的初始化元素
4. 适当使用服务器控件
在控件标记中加runat=server会增加web服务器的负担.除非有必要处理控件的属性,在服务器处理控件的事件时候就不要为标记加此属性
5.在必要的时候使用ViewState
viewstate包含的控件越多,服务器负担就愈大,利用viewstate还可能惹出麻烦,例如一个显示错误信息的label控件,我们希望不要在每一个页面上都重复该消息要清除某一控件的VIewstate 属性可以将其EnableViewSate属性设置为false.
6.在没有使用会话的页面中禁止用Session
7.尽可能的缓存数据和页面输出
 Cache可以大幅度提高性能,我们可以在页面中编写OutputCache指令
8.避免对服务器进行不必的数据往返传输
可以利用验证控件来减少不必要的往返数据传输
后面的比较仓促,老婆催着睡觉,再不睡估计要.....,呵呵.



jillzhang 2006-09-17 01:59 发表评论
分享到:
评论

相关推荐

    matlab实现几种贝叶斯多目标跟踪算法,包括泊松多伯努利混合滤波器的目标集和轨迹集

    matlab实现几种贝叶斯多目标跟踪算法,包括泊松多伯努利混合滤波器的目标集和轨迹集。存储库还包括GOSPA度量和用于评估性能的轨迹集的度量.zip

    逆合成孔径雷达的假目标欺骗设计与实现

    幸运的是,最近几年集成电路领域发展十分迅速,速度已经超过1GHZ,一个集成电路板可以容纳超过1000万个集成电路门,性能非常高,而且此类集成电路原材料是硅,工艺发展成熟后成本非常低,就是这种高性能和低造价,...

    人工智能-目标检测-基于多极化联合时频分析的海杂波微弱目标检测方法.pdf

    时频分析有很多种方法,如短时Fourier变换、连续Wavelet变换等。 在本文中,我们使用时频分析来分析目标和极化方式对海杂波时频分布的影响。我们发现目标的出现,将导致时频平面上瞬时频率曲线趋于平缓,瞬时频率...

    论文研究-一种人工内分泌多目标微粒群方法.pdf

    借鉴内分泌系统的监督控制机制,提出了一种...设计了新的粒子群更新方案,为验证方法的有效性,对几个典型的多目标优化问题进行了仿真实验,通过与MOPSO、NSGA-II两种方法的结果对比,表明算法有较好的收敛性和分布性。

    几种常见的排序算法及其实现

    排序算法是计算机科学中最基本且常见的算法之一。排序的目标是将一组数据按照升序或降序的方式进行排列。在实际编程中,选择适当的排序算法对于提高程序性能和效率至关重要...下面简要介绍几种常见的排序算法及其实现。

    应用于linux平台的目标检测算法研究.pdf

    帧差分法是一种占用内存小、实时易于实现的运动目标检测算法,通过在图像处理理论的基础上实现运动目标的检测。 知识点4:目标检测算法的实现 目标检测算法的实现需要将 OpenCV 移植到 Linux 操作系统中,然后使用...

    基于深度卷积神经网络的弹道目标微动分类.pdf

    最后,使用训练后的网络实现三种微动形式下的目标分类,并研究信噪比对分类性能的影响。 本文的主要贡献在于: 1. 提出了基于深度卷积神经网络的弹道目标微动分类方法,解决了传统弹道目标微动分类缺乏智能性及...

    软件性能测试指导资料.pdf

    软件性能测试是软件测试中的一种重要方法,旨在评估软件产品的性能和质量。软件企业要参与国际软件市场的竞争,首要问题就是要保证软件的质量, 同时要加快软件产品的发布与交付使用。因此,软件性能测试是软件企业...

    论文研究-通过域适应实现人脸识别.pdf

    当源域和目的域数据分布不同时,大多数机器学习方法的性能会降低。为了解决这一问题,基于域适应的思想,提出了一种新的人脸识别方法。...实验结果证明,该方法的性能与其他几种方法相比均有所提高。

    中医舌象分割技术研究进展 方法、性能与展望.docx

    基于深度学习的舌体分割方法是最近几年来发展起来的一种舌体分割方法,该方法利用深度学习模型来学习舌体的特征,然后实现舌体分割。基于深度学习的舌体分割方法可以分为基于卷积神经网络(Convolutional Neural ...

    企业管理目标管理法.doc

    企业管理目标管理法 目标管理(Management by Objectives,MBO)是20...目标管理是一种非常有用的管理方法,它可以帮助企业和组织更好地实现自己的目标和要求,提高员工的积极性和主动性,提高组织的整体性能和效率。

    聚类算法-基于监控视频的前景目标提取.pdf

    目前,几种常见的前景检测方法有帧差法、背景差分法、光流法等,但这些方法存在一些缺陷。高斯混合模型 GMM 是一种常用的背景提取模型,但它计算复杂,且对慢速前景检测效果不好,会将纹理和对比度低的前景当作背景...

    sqlserver几种同步机制介绍1

    以下是几种常见的SQL Server同步机制: Change Data Capture (CDC) Change Data Capture是SQL Server 2008引入的一种同步机制。它可以捕捉数据库中的变化,并将其记录下来,以便于后续的数据同步。CDC机制可以实时...

    第十章 数字系统设计方法.pdf

    数字系统设计方法 数字系统设计方法是指从抽象的定义到具体的...数字系统设计方法是一种系统化的设计方法,通过自顶向下的设计方法和模块技术,可以将复杂的系统设计问题分解为多个简单的子问题,逐步实现系统的设计。

    (完整word版)几种常见软件可靠性测试方法综述及应用对比(精).doc

    白盒测试是一种测试用例设计方法,通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。白盒测试的实施步骤包括测试...

    python开启摄像头以及深度学习实现目标检测方法

    最近想做实时目标检测,...我尝了几种办法:v4l2,v4l2_capture以及simpleCV,都打不开。最后采用pygame实现了摄像头的采集功能,这里直接给大家分享具体实现代码(python3.6,cv2,opencv3.3,ubuntu16.04)。中间注

    面向过程的软件设计方法和总体设计优秀文档.ppt

    面向过程的软件设计方法是软件设计的一种方法,它强调在设计过程中对软件的每个组件和模块进行详细的设计和分析,以确保软件的质量和性能。这种方法的优点是可以确保软件的各个组件之间的接口正确,减少了软件的BUG...

    优秀的性能测试工程师须掌握的几点

    那么我们在学习的时候,可以根据实际的方向定义如下目标:A、以主流测试 优秀的性能测试工程师须掌握的几点 软件测试 基础:系统学习一种或几种编程语言并熟练掌握。 学习编程语言是做性能测试的基础,因为涉及...

    目标检测YOLOv4共3个文档 1-原版论文pdf-2-中文翻译pdf-3-中英文翻译对照pdf

    yolo v4是一种目标检测算法,它是yolo(You Only Look Once)系列算法的最新版本。yolo v4具有更高的检测精度和更快的检测速度,可以在实时应用中广泛使用。它使用了一些新的技术,如CSPDarknet53骨干网络、SPP...

    满足帕累托最优的多目标云工作流调度算法.pdf

    该算法基于DVFS(Dynamic Voltage and Frequency Scaling)的离散粒子群优化方法,重新定义了PSO(Particle Swarm Optimization)种群粒子的进化过程和更新规则,从而得到多目标优化工作流调度解。该算法可以综合...

Global site tag (gtag.js) - Google Analytics