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

实现性能目标的几种方法

阅读更多
 第一次在这里写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 发表评论
分享到:
评论

相关推荐

    D3D渲染2D精灵的几种方法及性能比较

    在DirectX编程中,2D精灵的渲染是一个重要的任务,特别是在开发2D游戏时。本文主要探讨了在DirectX环境中,使用...在实际应用中,开发者可以根据项目规模、图形复杂度以及性能目标来灵活选择合适的2D精灵渲染技术。

    利用C#实现AOP常见的几种方法详解

    在C#中,实现AOP的方法多种多样,以下将详细介绍几种常见的实现方式。 1. **静态织入**: 静态织入是在编译时完成的,它通过编译器或者编译插件(如PostSharp)在目标类的代码中插入拦截逻辑。这种方式的优点是...

    几种目标识别算法.论文

    这篇名为"几种目标识别算法.论文"的文档深入探讨了三种不同的目标识别方法:基于Gabor遗传算法的红外图像识别、基于PCA(主成分分析)和图像匹配的飞机识别以及基于插值算法的真实图像与计算机生成图像的鉴别。 1. ...

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

    在本文中,我们将深入探讨基于MATLAB实现的贝叶斯多目标跟踪算法,特别是泊松多伯努利混合滤波器(Poisson-Bernoulli Mixture Filter, PBMF)以及相关的性能评估方法,如GOSPA度量。这些算法在目标检测、监控和自动...

    ASP.NET实现页面传值的几种方法小结

    需要注意的是,虽然上述方法可以实现页面间的数据传递,但每种方法都有其适用场景和限制。开发人员应该根据具体的应用场景和安全要求来选择最合适的数据传递方法。例如,在传递敏感信息时,应避免使用QueryString,...

    一种多运动目标检测方法在FPGA上的实现.pdf

    根据以上内容,本篇文档详细阐述了在FPGA上实现一种多运动目标检测方法的设计思路、技术难点以及解决方案。不仅关注了算法层面的优化,还侧重于通过硬件加速技术提高检测系统的性能,特别是处理速度和实时性。这是在...

    一个空间绑定多个域名实现自动跳转的几种方法[参考].pdf

    这里我们将探讨几种实现这一目标的方法,主要基于ASP(Active Server Pages)编程语言。 1. JavaScript跳转: 在提供的代码示例中,第一种方法使用JavaScript进行跳转。通过检查当前页面URL中是否包含特定域名,...

    目标函数极值求解的几种方法 最速下降法,你牛顿法,共轭梯度法编程实现

    以下是这些方法的详细描述和MATLAB编程实现概述。 1. **最速下降法**: 最速下降法基于梯度信息,选择沿着负梯度方向移动,以期望每次迭代都能最大程度地减少目标函数的值。迭代公式为:`x_{k+1} = x_k - α_k * ∇...

    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier

    它使用反射机制实现,通过getter和setter方法进行属性的读写。其优点在于简单易用,但缺点是在大量复制操作时性能较低,因为每次复制都需要进行反射调用。 PropertyUtils是Apache Commons BeanUtils的扩展,它增强...

    几种方法实现下拉刷新,上拉加载

    在实际开发中,选择哪种实现方式主要取决于项目需求和性能考虑。ListView适合数据量较小且不经常变动的场景,而RecyclerView因其灵活性和高效性,更适用于大数据量和复杂布局的场景。SwipeRefreshLayout则为两者提供...

    几种常见模式识别方法总结

    以下是对几种常见模式识别方法的详细说明: 1. **K-Nearest Neighbor (K-NN)** K-NN是一种基于实例的学习,用于分类和回归。其核心思想是:未知样本将被分类为其最近的K个已知类别样本中出现最多类别的那一类。在...

    基于python的多目标粒子群算法设计与实现

    多目标粒子群优化(Multi-Objective Particle Swarm Optimization, MOPSO)是一种高效的全局优化算法,它能够同时处理多个优化目标,寻找一组非劣解,即帕累托最优解。本篇文章将深入探讨如何使用Python语言实现这一...

    OPENCV目标跟踪OPENCV一个实现多目标跟踪的程序

    在目标跟踪的发展过程中,涌现了多种多样的算法,大致可以分为以下几种类型: 1. 基于特征的目标跟踪:这类方法通过选择和提取图像中的特征点来跟踪目标。常用的技术包括尺度不变特征变换(SIFT)、加速鲁棒特征...

    几种常用的目标机动模型-用于目标跟踪中的运动建模.pdf

    本文将详细介绍几种常用的目标机动模型,包括常速度模型、常加速度模型以及Singer模型,这些都是目标跟踪中运动建模的基础。 1. **常速度模型(CV模型)** 常速度模型假设目标以恒定的速度运动,不考虑加速度的影响...

    几种常见的排序算法的实现与性能分析数据结构课程设计报告.doc

    报告的目标是实现这些算法并分析它们在不同数据集下的比较次数和移动次数,以此评估各种排序算法的性能。 在需求分析部分,报告提到了以下几点关键要求: 1. 生成一个包含100个随机元素的数组,并将其存储到另一个...

    几种MUSIC算法性能比较RMSE,music算法优缺点,matlab

    本主题将深入探讨几种不同版本的MUSIC算法在RMSE(均方根误差)方面的性能比较,并分析MUSIC算法的优缺点。 首先,RMSE是衡量DOA估计精度的一个关键指标。它表示实际DOA与估计DOA之间的平均差异的平方根。较低的...

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

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

Global site tag (gtag.js) - Google Analytics