资源描述:
《关于asp.net的性能优化及其安全性的探讨 》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、关于ASP.NET的性能优化及其安全性的探讨[论文关键词]ASP.性能优化安全性 [论文摘要]本文主要从ASP.在网站开发中的性能及其安全性入手,介绍了如何将icrosoft中间语言(MSIL)。要在一个具体环境中执行应用程序,一个JIT编译器先接受MSIL输出并把指令转换为主机处理的本机指令,再以即时方式编译代码,以便应用程序开始执行。但是,JIT编译器不是把程序集中所有的MSIL都在开始执行前转换为本机代码,只是一次编译一个方法。JIT编译器采用的这种方法有两个性能上的优势。第一个优势:这项技术把编译的成本分摊在一个较长的时间内,由
2、于执行会比JIT编译器把所有的MSIL都进行编译看起来要快,这样感觉到应用程序的性能提高了。如果把长时间的暂停或等待时间分成小块,把它们分散开,你的用户就不会注意到它们,用户对你的应用程序的性能也会比较满意。第二个优势:JIT编译器不编译在执行期间用不到的方法。因此不会做没有必要的工作,无论什么时候省去不必要的处理工作,你就会发现可以获得真正的性能增益。 2.减少运行时的工作 在底层,ASP.基础结构为了让我们工作轻松,做了大量的基础工作。虽然把这个体系结构用做一个黑盒很不错,但有时了解使一切如此无缝的运行的实现细节也是很有益的。掌握
3、了这些额外的信息,我们经常可以更有效地在运行程序时获得速度上的优势。其实现主要有以下三种方法: (1)视图状态的优化 视图状态是性能的无声杀手。自动视图状态管理是服务器控件的功能,该功能使服务器控件可以在往返过程上重新填充它们的属性值(不需要编写任何代码)。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能确实会对性能产生影响。因此,开发人员应该知道在哪些情况下视图状态会有所帮助,在哪些情况下它影响配器的性能。例如,如果将服务器控件绑定到每个往返过程的数据上,则将用数据绑定操作获得的新值替换保存的视图状态。在这种
4、情况下,禁用视图状态可以节省处理时间。默认情况下,为所有服务器控件启用视图状态。若要禁用视图状态,将控件的EnableViewState属性设置为false。 从某种意义上说,视图状态是有史以来最伟大的事情。毕竟,视图状态使页面和控件能够在回发之间保持状态。因此,不必像在传统的ASP中那样编写代码,以防止在单击按钮时文本框中的文本消失,或在回发后重新查询数据库和重新绑定DataGrid。但是,视图状态也有缺点:当它增长得过大时,某些控件(例如文本框)会根据视图状态做出相应判断;其他控件(特别是DataGrid和GridView)则根据显
5、示的信息量确定视图状态。一个糟糕的GridView容易将浏览器和Web服务器之间连接的有效带宽减少50%以上。ASP.2.0能够提供比ASP.1.x更简单的方法将视图状态保留在会话状态中。 (2)尽量减少服务器控件的使用 服务器端的控件不仅能生成视图状态,它们也需要额外的运行时间处理绑定到成员变量。由于它们会使用服务器资源,即使它们非常易于使用,但是服务器控件并不总是完成任务的最佳选择,在许多情况下,一个简单的呈现或数据绑定代入就可以完成任务。所以,Web页面上服务器端的控件应该保持在最低的数量上。 (3)把异常减到最少 不要依赖
6、代码中的异常。因为异常大大地降低性能,所以不应该将它们用作控制正常程序流程的方式。 异常是通知程序执行期间发生的错误的一个非常有用的设备。程序不能忽视异常——它们将会改变程序的执行流。在ASP.运行时的托管环境中,用try和catch设置异常处理代码只对性能有可以忽略不计的影响,但程序抛出异常时却有性能的损失。如果将try…catch语句使用为if语句,将抛出更少的异常,运行得更快。 3.有效使用内存和缓存 只要可能,就缓存数据和页面输出。使用ASP.缓存机制有两点需要注意。首先,不要缓存太多项,缓存每个项均有开销,特别是在内存使用
7、方面。不要缓存容易重新计算和很少使用的项。其次,给缓存的项分配的有效期不要太短。很快到期的项会导致缓存中不必要的周转,并且经常导致更多的代码清除和垃圾回收工作。高周转率可能说明存在问题,特别是当项在到期前被移除时。 不要给每个请求分配过多内存,因为这样垃圾回收器将必须更频繁地进行更多工作。另外,不要让不必要的指针指向对象,因为它们将使对象保持活动状态,并且应尽量避免含Finalize方法的对象,因为它们在后面会导致更多的工作。特别是在Finalize调用中永远不要释放资源,因为资源在被垃圾回收器回收之前可能一直消耗着内存。最后这个问题经
8、常会对Web服务器环境的性能造成毁灭性的打击,因为在等待Finalize运行时,很容易耗尽某个特定的资源。 二、安全性 ASP.提供了一个很健壮的安全系统,我们可以轻松地利用这个安全系统消