ASP.NET性能的优化:网站优化需要考虑的方面

导读:作者燕洋天写了一系列关于ASP.NET的文章。我有段时间没有写ASP.NET的东西了,心里总是觉得缺少了什么,毕竟自己对ASP.NET还是情有独钟的。在本系列文章中,准备比较全面的讲述ASP.NET的性能的优化,从前台到后台,以后本列文也看作为大家的一个手册来查询!以下是文章内容:

网站优化需要考虑的方面

在用ASP.NET开发网站的时候,性能是永远需要考虑和关注的问题,性能不仅仅只是程序代码执行时候的速度,而是涉及到方方面面的东西。

就拿ASP.NET的一个请求来讲,从浏览器向服务器的ASP.NET网站发送请求开始一直到最后整个页面呈现在我们面前,其中请求经过的每一个步骤,都是有不同的调优方式的,而且调用的方法也很多,不仅仅只是常见的:缓存,多线程,异步等。

本系列的文章决定从两个大的方面来讲述调优:

前台调优:主要包含如何尽量的减少http请求,从http请求开始,到如何加载js, css,如何压缩传输的数据等。

后台调优:分析ASP.NET请求的处理过程,并在每一步给出相应的调优方法,而且在代码组织,架构和数据库的操作上面给出调优的方法。

记得在刚刚开发网站的时候,一提到提高性能,最容易也是最快想到的就是缓存,而且在微软官方的Best Practice的一些文档中也是建议:层层缓存(在数据存储层,DAL,BLL,UI等都要缓存)。然后在网站中就”缓存遍地开花”,最后的确实不尽人意。

另外的一个常见的优化针对数据库的:如尽量减少子查询,使用join联接;在常常需要查询的字段上面建立索引。确实,这些是很通用,也不错的一些规则。

而且还有一个体会就是,在优化性能的时候,如果选择优化代码和数据库,往往优化数据库的一些操作带来的效果会更加的好,很可惜的是:在项目中(至少在我开发的一些项目中),数据库仅仅就只是一个数据的存储设备而已,仅此而已,没有发挥出数据库的强大作用。所以还是建议对数据库的内部查询和存储的机制要熟悉,毕竟很多时候开发人员也担任了DBA的工作(很多公司没有正式的DBA)。

而且在项目中我们设计数据库的时候,特别是表字段的时候,是需要有些考虑的,很多人建议表字段的长度不要太长,这也是大家常见的建议,但是为什么?其实,这就需要懂得一些数据库的内部存储机制了:在数据库(SQL SERVER )保存的时候,数据是以”页”为最小的单位的,每一页有8K的大小,如果你的一个表中的数据超过8K,那么这个表的数据就要分几个页面保存,这样在对数据进行查询的时候,就要跨页查询了,跨页是需要性能消耗的,如果数据都在一个页面上,那么速度肯定快些。

所以,要优化网站,就得知道性能消耗在哪里。

当优化的一个网站的时候,不是盲目的一概而论的,一般来说有两种情况:

1、网站已经存在了,并且运行了,现在要优化。

2、正在从头开发一个新的网站。

如果是第一种情况,那么首先要找出网站性能的瓶颈,从前台的请求的到后台的请求处理,一直到最后页面的呈现,都要一步步的审查。

如果是第二种情况,可能情况就稍微好一点,并且网站现在完全由我们控制,所有在开发和设计的过程中就可以采用很多的优化原则来优化。

优化不一定就是代码重写或者做些很大的改动,优化时一点点的累积的,就好比代码的重构一样,都是一个积累的效果。比如,是在页面一开始的时候载入js脚本,还是在整个页面的最后载入js脚本,有时候往往就只是简单的调整一下载入的文件,或者异步的载入脚本,或者通过CDN传输脚本等等方法,性能就提升了。性能的提升也不是没有代价的,有的代价很小,例如只是把脚本的载入放在页面最后,大的代价就是,例如买些服务器设备,如Content Delivery Network(CDN)来把静态的文件(js,css,image)传送到客户端。所以说,优化需要权衡策略。

不知道大家是否有过这样的体会:当看着自己开发出来的系统性能很好的时候,自己是很自信的,相反,如果系统很慢,有时真不想说这个系统是自己做的。

时间: 2024-08-03 05:39:48

ASP.NET性能的优化:网站优化需要考虑的方面的相关文章

搜索引擎优化:网站优化排名排不上来的原因

在seo市场里,很多优化人员都一直用尽方法,去套索一些搜索引擎优化的技巧去给自己的网站进行排名优化,但优化一段很长的时间里,排名还是没有排上来,这到底是为什么呢?总而言之,轻则关键词排名优化不高,重则被搜索引擎删除除了网站,或者进行降权处理,这往往造成这些问题,只怪自己没有做到优化的"精"度,没有按搜索引擎的规则进行优化,这点一定要谨慎,以下简单概括一下对排排名优化的不利因素: 1.关键词堆砌 使用大量的关键词,以及一些无关联的关键词,在标题,Keywords标签.Descriptio

seo优化-网站优化如何兼顾百度和google

站内: 第一:域名的选择 百度和GG都喜欢域名内可以出现关键字,给的权重都很高,比如我的域名就出现 "网站推广"这个关键词,但是像这种域名现在越来越少了,虽然这个域名有点长,但是我感觉还行.还有域名com.net.org.cc.la等一些国际域名,相对于cn.com.cn的域名百度和google给的权重要要稍微好点. 第二:标题的选择 标题在我的博客里经常出现,我对他十分重视,我想各位站长也是一样的,同样百度和google也是很重视的.在标题的选择上,百度和google都不喜欢堆砌,重

网站优化从页面做起

页面|网站优化 网站优化从页面做起,这从何说起呢?网站做成后,对于网站的优化从单个页面开始优化是必不可少的,因此对于SEO来讲,采用正规手法是一个比较长期性的工作,如果你网站开始就不注重这些,等你的页面多了,那么整个网站就堆成了垃圾.反之精心的优化每个页面你的网站整体都会很受用. 首先做网站优化就是让你的网站与搜索引擎对话,告诉搜索引擎我的站是做什么的,我的站包含多少关于主题的东西,以及我的网站比同类网站的东西更有价值和权威,而这些不是你告诉搜索引擎,搜索引擎就会相信的,你得做给他看,怎么做?

优化网站服务器里的那些小秘密

应该很奇怪为什么藤设计拿这个来说事,一般情况下做网站不就是将发发外链.写原创软文.关键词配比.长尾关键词等问题吗?网站优化还和服务器有关系? 是的,服务器其实也是一个优化网站的最大杀手也是最大帮手,现今万网与阿里云合并导致更多空间商压力剧增那么我们幻想下,现在服务器那么透明的情况下到底到家买的是服务还是技术?因为我们做为北京网站设计工作室,更多时候也常常和服务器打交道,客服为了避开备案我们会给与配国外服务器或一些业内隐蔽性网站服务器.因为与我们合作的很多客户都属于中小型企业,对网站的需求起初是朦

企业网站优化的一些技巧经验

当网站托管给别人做seo网站优化的时候,有些企业网站负责人就会完全忽略网站的事,只等着SEOER的排名报告 其实一个网站的优化,不仅仅要看SEOER的技巧与努力,更要看网站负责人的努力.并不是花点钱找人来做这事就高枕无忧的.那么,自己要怎么来做网站优化呢? SEOER可以为你做好网站结构,弄好网站外链,但网站核心内容还是你自已的事,他不知道你的企业文化,不知道你 的产品真正优化,太多不知道了.毕竟他不是你这个专业的人士,你才是! 所以,在有人负责网站优化的同时,你也需要注意一下内容的优化.网站优

构建高性能ASP.NET站点 网站优化需要考虑的方面,徐汇区网站设计

导读:作者燕洋天写了一系列关于ASP.NET的文章.我有段时间没有写ASP.NET的东西了,心里总是觉得缺少了什么,毕竟自己对ASP.NET还是情有独钟的.在本系列文章中,准备比较全面的讲述ASP.NET的性能的优化,从前台到后台,以后本列文也看作为大家的一个手册来查询!以下是文章内容: 网站优化需要考虑的方面 在用ASP.NET开发网站的时候,性能是永远需要考虑和关注的问题,性能不仅仅只是程序代码执行时候的速度,而是涉及到方方面面的东西. 就拿ASP.NET的一个请求来讲,从浏览器向服务器的A

IIS7下Asp.net网站优化站点性能技巧

首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了,详见参考链接中的几篇文章,有好心人已经给翻译成中文了. Web服务器的性能优化有很多资料介绍了,多台主机负载均衡,查询结果的多级缓存,数据库索引优化等都是常见的优化手段.随着后端优化空间越来越小,现在越来越多的网站更注重前端性能的优化,就是浏览器,http层面的优化,这里写两点最简单最有效的asp.net网站优化技巧. 了解常见的网站性能优化技巧 首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了

ASP.NET性能提升秘诀之管道与进程优化

ASP.NET 2.0中包涵了很多秘密,当你发现它时,可以为你的程序带来更大的性能和扩展性提升.例如 ,了解了在Membership和Profile provider提供程序中所隐藏的秘密瓶颈后就可以方便地的解决验证问题 并使得授权操作的速度加快. 另外,ASP.NET HTTP管道为了避免针对每次请求所要执行的必要代码而发生阻塞.不仅那样,ASP.NET 工作者进程能够推动其限制而获得更高的性能.页面碎片在浏览器端的输出缓存(不是在服务器端)可以 显著节约回访者的下载时间.按需求的用户界面下载

ASP.NET性能优化小结(ASP.NET&C#)

ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不