也谈ASP.NET应用程序性能优化

作者:袖梨 2022-07-02
[把前一段时间给单位项目所做性能优化的一些想法整理了以下,分享交流]
ASP.NET 应用程序性能优化
1 前言
性能优化的主要目标是提高“并发用户数量”,“吞吐量”,“可靠性”这样几个指标。
本质上说,性能优化的工作应该是多方面的,要做到“点面结合、由表及里”。比如:从代价的角度来考虑,应尽量做到改动量小,易实施;从用户角度看,应做到快速响应或快速提示;从软件结构的角度看,又要兼顾到系统结构的合理性和可扩展性。由此不难发现,在尝试一些改进方法时往往很难做到面面俱到。
举一个简单的例子:
在一个业务逻辑类中,我们封装了一些处理方法,其中有一个方法的功能是查找一个节点ID在XML文件是否已经存在。那我们自然会想到写两个方法:
XmlDocument LoadXML(string strFileID)     //加载XML
bool CheckIDExisit(string strFileID,string strID)     //判断节点是否存在
而且,加载XML的方法在其他地方还可以重用;表面上看,这段代码的结构和功能都没有问题。可是在运行时,如果你的逻辑中直接或间接调用了LoadXML多次的话,你会发现程序很慢。原因就在于加载XML文件是个耗时动作,解决的方法很简单,我们再提供几个方法即可:
bool CheckIDExisitByXml (string strXml,string strID)     //判断节点是否存在
或 bool CheckIDExisitByXml (XmlDocument objXml,string strID)     //判断节点是否存在
这样,我们就可以通过“一次加载”实现多次借用,效率明显提升。所以,在软件结构设计时就应将可重用“珍贵”数据源的因素考虑进来。(这里的“珍贵”数据源是指那些经过复杂处理或长时间计算才得到的各种对象或记录集)。
性能优化的工作又应是长期的,因为我们的工作始终是建立在OS,Web Server, DB Server,  Complier & Program Language等等的基础上的。如果你熟悉.NET, JAVA,IIS, J2EE, 你就会发现有些功能或API这个平台提供了,另一个却没有;所以更多时候我们需要过渡的解决方案,等到新版本出来时,我们可能就会抛弃过渡方案直接配置或更简便的实现一些功能。[...]

相关文章

精彩推荐