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

实现性能目标的几种方法

阅读更多
 第一次在这里写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

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

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

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

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

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

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

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

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

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

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

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

    论文研究-采用新邻居模型的多目标分解进化算法.pdf

    在通常的基于分解的多目标进化算法中,繁殖计算时使用的解从基于子问题定义的邻居集合中选择,当目标函数...通过在公开测试集上的实验结果表明,提出的算法与几种经典的多目标进化算法相比,在大多数测试集上表现更优。

    基于Pytorch的NanoDet项目裁剪实现摄像头实时目标检测源码+说明文档(下载直接使用).zip

    - NanoDet 是一种 FCOS 式的单阶段 anchor-free 目标检测模型,它使用 ATSS 进行目标采样,使用 Generalized Focal Loss 损失函数执行分类和边框回归(box regression) 模型性能 Model |Resolution|COCO mAP|...

    Temporal Fusion Transformers 的Pytorch实现

    虽然已经提出了几种用于多步骤预测的深度学习模型,但它们通常由黑盒模型组成,无法解释常见场景中存在的各种输入。在本文中,我们介绍了时态融合转换器(TFT)--一种基于注意力的新型架构,它将高性能多视距预测与...

    机载相控阵雷达STAP原理及其干扰方法研究

    首先介绍了机载雷达的杂波几何模型,阐述了机载相控阵雷达STAP技术的基本原理,然后从其弱点和局限性出发探讨了对其可能的几种干扰方式,并详细解释了其干扰机理,为机载相控阵雷达STAP干扰技术的具体实现打下了基础...

    基于改进旋转区域生成网络的遥感图像目标检测

    为了实现遥感图像中目标的快速准确检测,解决遥感图像目标带有...将本文算法与几种主流目标检测方法进行对比分析后可知,本文算法因融合了多尺度特征及旋转区域网络的卷积神经网络所提取的特征,能得到更好的检测结果。

    交替高速ADC的难点和解决这些问题的几种方法

    时间交替的根本目标是通过增加转换器,在不影响分辨率和动态性能的前提下使采样频率增倍。  本文探讨时间交替模数转换器的主要技术难点,并提供切实可行的系统设计指导,包括可解决上述问题的创新性元件功能和设计...

    源自新浪的TCP性能分析工具Tcpdive.zip

    对TCP协议的性能评测主要采用两种方法。  一种是通过对上层应用的测试,来评估TCP协议的性能。这种方法的评价指标有限,而且是上层应用相关的。  另一种是依靠第三方测试服务。这种方式的样本量有限,且成本较...

    车载卫星通信站电子罗盘的应用和研究

    为实现自动快速对星需求,电子罗盘已成为车载天线伺服系统的重要组成部分。但受到安装位置和地域环境磁场的影响,电子罗盘的测量数据会发生...比较几种标定方法,以正弦拟合曲线标定法效果较好,可大大缩短初始捕星的时间。

    模拟技术中的交替高速ADC的难点和解决这些问题的几种方法

    时间交替的根本目标是通过增加转换器,在不影响分辨率和动态性能的前提下使采样频率增倍。  本文探讨时间交替模数转换器的主要技术难点,并提供切实可行的系统设计指导,包括可解决上述问题的创新性元件功能和设计...

    基于JAVAWEB技术旅游服务网站系统设计与实现

    采用了建立动态网站的几种相关技术,如JSP、JDBC、SQL2005数据库等。在基于 JAVAWEB技术来进行旅游网站系统的开发与设计中,主要研究了动态网站系统的 需求分析,旅游服务网站的系统设计目标,整理了系统的业务流程...

    车载卫星通信站电子罗盘的应用和研究.pdf

    为实现自动快速对星需求,电子罗盘已成为车载天线伺服系统的重要组成部分。但受到安装位置和地域环境 磁场的影响,电子罗盘的测量...比较几种标定方法,以正弦拟合曲线标定法效果较好,可大大缩短初 始捕星的时间。

    使用FastDeploy 进行(图像分类、目标检测、语义分割、文本检测-orc)python部署

    本资源整理了(图像分类、目标检测、...包括 物体检测、字符识别(OCR)、人脸、人像扣图、多目标跟踪系统、NLP、Stable Diffusion文图生成、TTS 等几十种任务场景,满足开发者多场景、多硬件、多平台的产业部署需求。

Global site tag (gtag.js) - Google Analytics