教你七招提高.NET网站性能

一、减少往返行程(Reduce Round Trips)

使用下面的方法可以减少Web服务器和Browser之间的往返行程:

1、为Browser启用缓存

如果呈现的内容是静态的或变化周期较长,应启用Browser缓存,避免发出冗余的http请求。

2、缓冲页面输出

如果可能,则尽量缓冲页面输出,处理结束后再一次传送到客户端,这可以避免频繁传递小块内容所造成的多次网络交互。由于这种方式在页面处理结束之前客户端无法看到页面内容,因此如果一个页面的尺寸较大的话,可考虑使用Response.Flush方法。该方法强制输出迄今为止在缓冲区中的内容,你应当采用合理的算法控制调用Response.Flush方法的次数。

3、使用Server.Transfer重定向请求

使用Server.Transfer方法重定向请求优于Response.Redirect方法。原因是Response.Redirect会向Broswer回送一个响应头,在响应头中指出重定向的URL,之后Brower使用新的URL重新发出请求。而Server.Transfer方法直接是一个简单的服务端调用,完全没有这些开销!

需要注意Server.Transfer有局限性:第一,它会跳过安全检查;第二,只适用于在同一Web应用内的页面间跳转。

二、避免阻塞和长时间的作业

如果需要运行阻塞或长时间运行的操作,可以考虑使用异步调用的机制,以便Web服务器能够继续处理其它的请求。

1、使用异步方式调用Web服务和远程对象

只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的ASP.NET 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。

2、考虑给不需要返回值的Web方法或远程对象的方法添加OneWay属性

这种模式能让Web Server调用之后就立即返回。可根据实际情况决定是否使用这种方法。

3、使用工作队列

将作业提交到服务器上的工作队列中。客户端通过发送请求来轮询作业的执行结果。

三、使用缓存

缓存能在很大程度上决定ASP.NET应用的最终性能。Asp.net支持页面输出缓存和页面部分缓存,并提供Cache API,供应用程序缓存自己的数据。是否使用缓存可考虑下面的要点:

1、识别创建与访问代价较大的数据

2、评估需要缓存数据的易变性

3、评估数据的使用频次

4、 将要缓存数据中易变数据和不变数据分离,只缓存不变数据

5、选择合适的缓存机制(除Asp.net Cache外,Application state和Session state也可以作为缓存使用)

四、多线程

1、避免在请求处理过程中创建线程

在执行请求的过程中创建线程是一种代价较大的操作,会严重影响Web Server的性能。如果后续的操作必须用线程完成,建议通过thread pool来创建/管理线程。

2、不要依赖线程数据槽或线程静态变量

由于执行请求的线程是ASP.NET thread pool中的工作线程,同一个Client的两次请求不一定由相同的线程来处理。

3、避免阻塞处理请求的线程

4、避免异步调用

这和1的情况类似。异步调用会导致创建新的线程,增加服务器的负担。所以,如果没有并发的作业要执行,就不要执行异步调用。

五、系统资源

1、考虑实现资源池以提升性能

2、明确地调用Dispose或Close释放系统资源

3、不要缓存或长时间占用资源池中的资源

4、尽可能晚的申请,尽可能早的释放

六、页面处理

1、尽量减小Page的尺寸

包括缩短控件的名称、CSS的class的名称、去掉无谓空行和空格、禁用不需要的ViewState

2、启用页面输出的缓冲区(Buffer)

如果Buffer的机制被关闭,可以用下面的方法打开。

使用程序打开页面输出缓存:

Response.BufferOutput = true;

使用@Page开关打开页面输出缓冲机制:

使用Web.config或Machine.config配置文件的 节点:

3、利用Page.IsPostBack优化页面输出

4、通过分离页面的不同的内容,来提高缓存效率和减少呈现的时间

5、优化复杂和代价较大的循环

6、合理利用客户端的计算资源,将一些操作转移到客户端进行

七、ViewState

ViewState是Asp.net为服务端控件在页面回传之间跟踪状态信息而设计的一种机制。

1. 关闭ViewState

如果不需要跟踪页面状态,例如页面不会 回传(PostBack)、不需要处理服务端控件事件或者每次页面刷新时都会重新计算控件内容,那么就不需要用ViewState来记录页面状态了。可以对特定的WebControl设置EnableViewState属性,也可以在页面一级设置:

2、在恰当的时间点初始化控件属性

ASP.NET的控件在执行构造函数、初始化的期间设置的属性不会被跟踪变化;而在初始化阶段之后对属性的修改都会被跟踪,并最终记录到IE页面的__VIEWSTATE之中。所以,选择合理的初始化控件属性的执行点,能有效的减小页面尺寸。

3、谨慎选择放到ViewState中的内容

放到ViewState中的内容会被序列化/反序列化,Asp.net为String、Integer、Boolean等基本类型的序列化做了优化,如果Array、ArrayList、HashTable存储的是基本类型效率也较高,但其它类型则需要提供类型转换器(Type Converter),否则将使用代价昂贵的二进制序列化程序。

总结:光有了这些技术方法还不够,还需要将这些方法根据你网站的情况灵活运用,适时调整方法,集中解决重要问题,这有这样网站性能才能得到大幅度的优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当然可以。ASP.NET是一个非常流行的Web开发框架,可以让你快速构建出高效、可靠的Web应用程序。下面是建立ASP.NET个人网站的一些步骤: 1. 在你的计算机上安装Visual Studio。Visual Studio是微软提供的一个强大的集成开发环境,可以帮助你开发ASP.NET应用程序。 2. 创建一个新的ASP.NET Web应用程序项目。在Visual Studio中,选择“文件”->“新建”->“项目”,然后选择“ASP.NET Web应用程序”。 3. 设计你的网站。在ASP.NET中,你可以使用Visual Studio自带的设计器来创建你的网站页面。你还可以使用HTML、CSS和JavaScript等前端技术来设计你的网站。 4. 编写代码。在ASP.NET中,你可以使用C#或VB.NET等语言编写后端代码。你可以在你的代码中添加业务逻辑、数据访问等功能。 5. 测试和部署。在你完成网站的设计和编码后,你可以使用Visual Studio内置的调试工具进行测试。一旦你的网站测试通过,你可以将它部署到IIS服务器上。 以上是建立ASP.NET个人网站的一些基本步骤。如果你需要更详细的指导,请告诉我。 ### 回答2: 当然可以帮你制作ASP.NET个人网站ASP.NET是一种用于构建动态网页和Web应用程序的技术框架,具有强大的功能和灵活性。我们可以使用ASP.NET的各种特性和工具来设计和开发符合你个人需求的网站。 首先,我们可以深入了解你的需求,包括网站的目的、功能和设计风格等。然后我们将根据你的要求和喜好来创建定制化的网站模板。ASP.NET提供了丰富的控件和布局选项,我们可以根据你的喜好来选择并集成这些元素。 接下来,我们会使用C#或VB.NET等编程语言来实现网站后端的功能。这包括处理用户的输入、数据存储和管理、用户认证和授权等。我们可以使用ASP.NET提供的功能强大的数据库访问技术,比如ADO.NET或Entity Framework来管理和操作数据。 另外,我们可以利用ASP.NET的安全性和认证机制来保护你的个人网站免受潜在的攻击和数据泄漏。ASP.NET提供了防御跨站脚本攻击(XSS)、跨站请求伪造(CSRF)和SQL注入等常见的安全漏洞的解决方案。 最后,我们会进行网站的测试和优化,以确保网站在不同设备和浏览器上都能正常运行和展示。我们可以使用ASP.NET提供的调试工具和性能优化技术来提高网站的响应速度和用户体验。 总而言之,我们可以利用ASP.NET的强大功能和灵活性来制作符合你需求的个人网站。我们会与你紧密合作,确保最终的网站能满足你的期望并超出你的预期。请放心,我们会尽力帮助你创建一个引人注目且完美运行的ASP.NET个人网站

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值