
.NET 缓存
深度Java
这个作者很懒,什么都没留下…
展开
-
适当地使用公共语言运行库的垃圾回收器和自动内存管理
小心不要给每个请求分配过多内存,因为这样垃圾回收器将必须更频繁地进行更多的工作。另外,不要让不必要的指针指向对象,因为它们将使对象保持活动状态,并且应尽量避免含 Finalize 方法的对象,因为它们在后面会导致更多的工作。特别是在 Finalize 调用中永远不要释放资源,因为资源在被垃圾回收器回收之前可能一直消耗着内存。最后这个问题经常会对 Web 服务器环境的性能造成毁灭性的打击,因为在等待原创 2004-10-25 00:14:00 · 2356 阅读 · 0 评论 -
Asp.net动态生成html页面
作者:网际浪子专栏(曾用名littlehb) http://blog.youkuaiyun.com/littlehb/适用于:Microsoft ASP.NET摘要:asp.net动态生成html页面,适用简介此功能适用于后台数据库功能不强的web站点,即大部分文本不是存放在数据库的记录中,而是放在html文件或者xml文件中,仅仅把索引放到数据库中,如文章标题、类别、查询关键字等。这样适合于后原创 2004-10-26 19:47:00 · 5116 阅读 · 0 评论 -
不要依赖代码中的异常
因为异常大大地降低性能,所以您不应该将它们用作控制正常程序流程的方式。如果有可能检测到代码中可能导致异常的状态,请执行这种操作。不要在处理该状态之前捕获异常本身。常见的方案包括:检查 null,分配给将分析为数字值的 String 一个值,或在应用数学运算前检查特定值。下面的示例演示可能导致异常的代码以及测试是否存在某种状态的代码。两者产生相同的结果。 [C#]// Consider changi原创 2004-10-25 00:13:00 · 2205 阅读 · 0 评论 -
如果有大型 Web 应用程序,可考虑执行预批编译
每当发生对目录的第一次请求时都会执行批编译。如果目录中的页面没有被分析并编译,此功能会成批分析并编译目录中的所有页面,以便更好地利用磁盘和内存。如果这需要很长时间,则将快速分析并编译单个页面,以便请求能被处理。此功能带给 ASP.NET 性能上的好处,因为它将许多页面编译为单个程序集。从已加载的程序集访问一页比每页加载新的程序集要快。 批编译的缺点在于:如果服务器接收到许多对尚未编译的页面的请求,原创 2004-10-25 00:14:00 · 2210 阅读 · 0 评论 -
使请求管线内的所有模块尽可能高效
请求管线内的所有模块在每次请求中都有机会被运行。因此,当请求进入和离开模块时快速地触发代码至关重要,特别是在不使用模块功能的代码路径里。分别在使用及不使用模块和配置文件时执行吞吐量测试,对确定这些方法的执行速度非常有用。原创 2004-10-25 00:21:00 · 2297 阅读 · 0 评论 -
将 SqlDataReader 类用于快速只进数据游标
SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法。如果当创建 ASP.NET 应用程序时出现允许您使用它的情况,则 SqlDataReader 类提供比 DataSet 类更高的性能。情况之所以这样,是因为 SqlDataReader 使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据。另外,SqlDataReader 类实原创 2004-10-25 00:26:00 · 3152 阅读 · 0 评论 -
对于广泛依赖外部资源的应用程序,请考虑在多处理器计算机上启用网络园艺
ASP.NET 进程模型帮助启用多处理器计算机上的可缩放性,将工作分发给多个进程(每个 CPU 一个),并且每个进程都将处理器关系设置为其 CPU。此技术称为网络园艺。如果应用程序使用较慢的数据库服务器或调用具有外部依赖项的 COM 对象(这里只是提及两种可能性),则为您的应用程序启用网络园艺是有益的。但是,在决定启用网络园艺之前,您应该测试应用程序在网络园中的执行情况。原创 2004-10-25 00:29:00 · 3188 阅读 · 0 评论 -
简单代码的性能差异
《.net 框架程序设计》里的几句代码,我重新整理了一下,写成函数,这样下面的反编译代码看起来更方便点:dahuzizyd的专栏 http://blog.youkuaiyun.com/dahuzizyd/public void Boxing() { Int32 v = 5; Console.WriteLine("{0},{1},{2}",原创 2004-10-29 21:17:00 · 3056 阅读 · 0 评论 -
ASP.NET强大的性能
crystal译 ·yesky 一个程序,速度是一件非常令人渴望的东西。一旦代码开始工作,接下来你就得尽可能的让它运作的快些,再快些, 在ASP中你只有尽可能拧干你的代码,以至于不得不将他们移植到一个仅有很少一点性能的部件中。但现在呢,微软将推出 的ASP.NET会妥善的解决这一问题. 兼容性 ASP.net与ASP兼容,因此没有必要担心你现存的应用程序会在IIS的下一版本中崩溃。AS原创 2004-10-30 16:16:00 · 3406 阅读 · 0 评论 -
ASP.NET超凡的代码控制
crystal译··yesky 适应性 肯定的是,通常任何一个全新的技术,在市场渗透都会花费一些时间。微软正在开始让ASP和IIS平台通过行业验证,以便让其作为其它网络服务器之外可以供选择的平台 对于在其基本构架上的如此巨大的改变,是很难说服客户或者开发人员丢弃他们以前所使用的方法而来改用现有的方法。当然,随着时间的流逝,问题总是会被慢慢的解决,但事实上,ASP+要被市场接受,所面临原创 2004-10-30 16:15:00 · 3052 阅读 · 0 评论 -
浅谈在ASP.NET中数据有效性校验的方法
作者:未知作为一名程序员,一定要对自己编写的程序的健壮性负责,因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分。 我这里总结了一种自认为比较不错的asp.net(C#)的数据校验方法,如大家探讨。 主要用Regex的IsMatch方法,在BusinessRule层进行校验数据的有效性,并将校验的方法作为BusinessRule层基类的一部分。在WebUI层现实提示信息。usi原创 2004-10-30 19:11:00 · 3513 阅读 · 0 评论 -
禁用页面缓存的几种方法(静态和动态)
1、在Asp页面首部加入 Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache" Response.AddHeader "Pr原创 2007-03-20 21:36:00 · 4673 阅读 · 1 评论 -
asp.net页面缓存技术
很早就想写多点关于技术的东西一来是为了自己可以更方面的查询,而来当然了更方面大家拉。哈闲话少说今天刚好有空就拼凑点出来 页面缓存使用OutputCache指令。 Location="Any" VaryByCustom="browser" VaryByParam="Re原创 2007-03-20 21:45:00 · 11078 阅读 · 6 评论 -
Cache总义Cache用法之页面声明
Cache总义Cache用法之页面声明Duration="#ofseconds"Location="Any|Client|Downstream|Server|None"VaryByControl="ControlName"VaryByCustom="browser|customstring"VaryByHeader="headers"VaryByParam="Parametername" %>原创 2007-03-20 22:05:00 · 4085 阅读 · 2 评论 -
如何最大限度提高.NET的性能
优化 .NET的性能1)避免使用ArrayList。 因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。.net 2.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。2)使用HashTale代替其他字典集原创 2007-03-21 00:51:00 · 8538 阅读 · 5 评论 -
将 SQL Server 存储过程用于数据访问
在 .NET Framework 提供的所有数据访问方法中,基于 SQL Server 的数据访问是生成高性能、可缩放 Web 应用程序的推荐选择。使用托管 SQL Server 提供程序时,可通过使用编译的存储过程而不是特殊查询获得额外的性能提高。原创 2004-10-25 00:25:00 · 2605 阅读 · 0 评论 -
在 Visual Basic .NET 或 JScript 代码中使用早期绑定
以往,开发人员喜欢使用 Visual Basic、VBScript 和 JScript 的原因之一就是它们所谓“无类型”的性质。变量不需要显式类型声明,并能够简单地通过使用来创建它们。当从一个类型到另一个类型进行分配时,转换将自动执行。不过,这种便利会大大损害应用程序的性能。 Visual Basic 现在通过使用 Option Strict 编译器指令来支持类型安全编程。为了向后兼容,默认情况下原创 2004-10-25 00:22:00 · 2444 阅读 · 0 评论 -
除非有特殊的原因要关闭缓冲,否则使其保持打开
禁用 Web 窗体页的缓冲会导致大量的性能开销。原创 2004-10-25 00:12:00 · 2378 阅读 · 0 评论 -
选择适合页面或应用程序的数据查看机制
根据您选择在 Web 窗体页显示数据的方式,在便利和性能之间常常存在着重要的权衡。例如,DataGrid Web 服务器控件可能是一种显示数据的方便快捷的方法,但就性能而言它的开销常常是最大的。在某些简单的情况下,您通过生成适当的 HTML 自己呈现数据可能很有效,但是自定义和浏览器定向会很快抵销所获得的额外功效。Repeater Web 服务器控件是便利和性能的折衷。它高效、可自定义且可编程。原创 2004-10-25 00:27:00 · 2270 阅读 · 0 评论 -
一定要禁用调试模式
在部署生产应用程序或进行任何性能测量之前,始终记住禁用调试模式。如果启用了调试模式,应用程序的性能可能受到非常大的影响。原创 2004-10-25 00:30:00 · 5155 阅读 · 1 评论 -
优化 Web 服务器计算机和特定应用程序的配置文件以符合您的特定需要
默认情况下,ASP.NET 配置被设置成启用最广泛的功能并尽量适应最常见的方案。因此,应用程序开发人员可以根据应用程序所使用的功能,优化和更改其中的某些配置,以提高应用程序的性能。下面的列表是您应该考虑的一些选项。 仅对需要的应用程序启用身份验证。默认情况下,身份验证模式为 Windows,或集成 NTLM。大多数情况下,对于需要身份验证的应用程序,最好在 Machine.config 文件中原创 2004-10-25 00:31:00 · 2879 阅读 · 0 评论 -
Asp.NET中常用的一些优化性能的方法
ASP.NET 的缓存机制相比ASP有很大的改进,本文档除对常用优化方法进行总结介绍外,强调了如何使用ASP.NET的缓存来获得最佳性能。1:不要使用不必要的session和ASP中一样,在不必要的时候不要使用Session。可以针对整个应用程序或者页面禁用会话状态:l 禁用页面的会话状态l 禁用应用程序的会话状态在应用程序的Web.Config文件的session原创 2004-10-24 23:00:00 · 2267 阅读 · 0 评论 -
仔细选择会话状态提供程序
ASP.NET 为存储应用程序的会话数据提供了三种不同的方法:进程内会话状态、作为 Windows 服务的进程外会话状态和 SQL Server 数据库中的进程外会话状态。每种方法都有自己的优点,但进程内会话状态是迄今为止速度最快的解决方案。如果只在会话状态中存储少量易失数据,则建议您使用进程内提供程序。进程外解决方案主要用于跨多个处理器或多个计算机缩放应用程序,或者用于服务器或进程重新启动时不能原创 2004-10-25 00:06:00 · 2294 阅读 · 0 评论 -
只在必要时保存服务器控件视图状态
自动视图状态管理是服务器控件的功能,该功能使服务器控件可以在往返过程上重新填充它们的属性值(您不需要编写任何代码)。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能确实会对性能产生影响。您应该知道在哪些情况下视图状态会有所帮助,在哪些情况下它影响页的性能。例如,如果您将服务器控件绑定到每个往返过程上的数据,则将用从数据绑定操作获得的新值替换保存的视图状态。在这种情况下,禁用原创 2004-10-25 00:10:00 · 2444 阅读 · 0 评论 -
使用 HttpResponse.Write 方法进行字符串串联
该方法提供非常有效的缓冲和连接服务。但是,如果您正在执行广泛的连接,请使用多个 Response.Write 调用。下面示例中显示的技术比用对 Response.Write 方法的单个调用连接字符串更快。 [C#]Response.Write("a");Response.Write(myString);Response.Write("b");Response.Write(myObj.ToStrin原创 2004-10-25 00:12:00 · 5910 阅读 · 0 评论 -
必要时调整应用程序每个辅助进程的线程数
ASP.NET 的请求结构试图在执行请求的线程数和可用资源之间达到一种平衡。已知一个使用足够 CPU 功率的应用程序,该结构将根据可用于请求的 CPU 功率,来决定允许同时执行的请求数。这项技术称作线程门控。但是在某些条件下,线程门控算法不是很有效。通过使用与 ASP.NET Applications 性能对象关联的 Pipeline Instance Count 性能计数器,可以在 PerfMo原创 2004-10-25 00:18:00 · 3001 阅读 · 0 评论 -
使用 HttpServerUtility.Transfer 方法在同一应用程序的页面间重定向
采用 Server.Transfer 语法,在页面中使用该方法可避免不必要的客户端重定向。原创 2004-10-25 00:20:00 · 3308 阅读 · 0 评论 -
将调用密集型的 COM 组件迁移到托管代码
.NET Framework 提供了一个简单的方法与传统的 COM 组件进行交互。其优点是可以在保留现有投资的同时利用新的平台。但是在某些情况下,保留旧组件的性能开销使得将组件迁移到托管代码是值得的。每一情况都是不一样的,决定是否需要迁移组件的最好方法是对 Web 站点运行性能测量。建议您研究一下如何将需要大量调用以进行交互的任何 COM 组件迁移到托管代码。 许多情况下不可能将旧式组件迁移到原创 2004-10-25 00:23:00 · 2864 阅读 · 0 评论 -
避免单线程单元 (STA) COM 组件
默认情况下,ASP.NET 不允许任何 STA COM 组件在页面内运行。若要运行它们,必须在 .aspx 文件内将 ASPCompat=true 属性包含在 @ Page 指令中。这样就将执行用的线程池切换到 STA 线程池,而且使 HttpContext 和其他内置对象可用于 COM 对象。前者也是一种性能优化,因为它避免了将多线程单元 (MTA) 封送到 STA 线程的任何调用。 使用原创 2004-10-25 00:24:00 · 4708 阅读 · 0 评论 -
只要可能,就缓存数据和页输出
ASP.NET 提供了一些简单的机制,它们会在不需要为每个页请求动态计算页输出或数据时缓存这些页输出或数据。另外,通过设计要进行缓存的页和数据请求(特别是在站点中预期将有较大通讯量的区域),可以优化这些页的性能。与 .NET Framework 的任何 Web 窗体功能相比,适当地使用缓存可以更好的提高站点的性能,有时这种提高是超数量级的。 使用 ASP.NET 缓存机制有两点需要注意。首先,原创 2004-10-25 00:28:00 · 3664 阅读 · 1 评论 -
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。 若要禁用页的会话状态,请将 @ Page 指令中的 EnableSessionState 属性设置为 false。例如,。 注意 如果页需要访问会话变量,但不打算创建或修改它们,则将 @ Page 指令中的 EnableSessionState 属性设置为 ReadOnly原创 2004-10-25 00:06:00 · 2156 阅读 · 0 评论 -
避免到服务器的不必要的往返过程
虽然您很可能希望尽量多地使用 Web 窗体页框架的那些节省时间和代码的功能,但在某些情况下却不宜使用 ASP.NET 服务器控件和回发事件处理。 通常,只有在检索或存储数据时,您才需要启动到服务器的往返过程。多数数据操作可在这些往返过程间的客户端上进行。例如,从 HTML 窗体验证用户输入经常可在数据提交到服务器之前在客户端进行。通常,如果不需要将信息传递到服务器以将其存储在数据库中,那么您不应该原创 2004-10-25 00:07:00 · 2089 阅读 · 0 评论 -
asp.net 的性能计数器
ASP.NET 支持两组性能计数器:系统和应用程序。前者在 ASP.NET 性能计数器对象中的 PerfMon 中公开;后者在 ASP.NET Applications 性能对象中公开。ASP.NET 性能对象中的 State Server Sessions 计数器(仅适用于在其中运行状态服务器的服务器计算机)和 ASP.NET Applications 性能对象中的 Sessions 计数器(仅原创 2007-03-21 22:09:00 · 4360 阅读 · 0 评论