首页 新闻 会员 周边 捐助

大家如何做好ASP.NET的性能问题呢?

0
悬赏园豆:20 [已关闭问题]

我想ASP.NET里的缓存机制是蛮多的,

首先是页面缓存,可以说页面缓存的效率是最高的吧,因为页面缓存后,下次访问时直接输出,而不需要程序处理了。但是页面缓存有个很大的缺点,无法对整页缓存后对局部不缓存,请参考:http://space.cnblogs.com/question/2896/ 

那么,第二考虑的就是cache数据缓存了吧。把一些需要经常访问数据库的数据,采用cache缓存起来,下次访问时可以不用去查询数据库,而且这个cache可以有依赖选项。

第三是数据级的,就是提高SQL性能、减少不必要的输出等,这些就不在这里讨论。

除了这些,请问大家还有其他的极速提高性能的方式吗?
你们一般是应用哪些技术来提高ASP.NET的性能呢?

问题补充: 有人提到采用静态页,但我认为静态页只是减少了数据库的查询,但同样会增加IO的操作,频繁的IO操作同样也是个性能瓶颈啊? 我觉得ASP.NET里的User Control的页面缓存可以使用shared=true来公用,这个是性能提高的一个很好的方式。 不过,这只能是局部缓存,这样的话,我们需要把页面切成N多的User Control来做。 而对于列表,比如我们看到的博问右面的“快到期问题”“相关连接”也可以采用页面缓存,只要定义刷新间隔为比如1分钟即可。
听棠.NET的主页 听棠.NET | 初学一级 | 园豆:130
提问于:2008-09-17 08:51
< >
分享
其他回答(4)
0

老大终于出现了?还记得小弟偶么?

我利用缓存,完全是按discuz .NET版本的缓存机制

zjy | 园豆:3194 (老鸟四级) | 2008-09-17 09:00
0

方面么,好像也就这几个

页面级缓存的终极目标是静态页,哈哈

cache还是大有可为的,内存越来越便宜,在控制好程序复杂度的情况下,cache可以消灭绝大多数的数据库交互和IO,这个数据库和IO是多数系统的瓶颈所在,尤其当LINQ出现之后,一些特殊的网站,数据量不是很大的时候,甚至可以把数据库做到内存里,速度没得说,程序上只有不犯什么大的错误,这里出现性能瓶颈的可能性非常小

数据级不讨论,那就不讨论喽

丁学 | 园豆:18730 (专家六级) | 2008-09-17 09:21
0

如果内存的稳定性有保证的话,我觉得Cache可以采用“写回”的方案(参考CPU Cache的同步方式),即对对象的所有更新也只更新Cache中的对象,当Cache对象过期时才将更新写入数据库

这种情况下,读是从Cache读的,因此肯定是最新的,但更新的连接大大减少,提高了性能

Gray Zhang | 园豆:17610 (专家六级) | 2008-09-17 11:30
0

大侠,敬仰!我曾经的做法很挫很实用:后台直接生成可静态化的文件,或者定时器定时刷新重生成,或者编辑更新时后台进行页面重生成,或者二者结合:)

陛下 | 园豆:3938 (老鸟四级) | 2008-09-17 12:29
0

我比较赞同缓存数据,尽量通过缓存来减少容易产生性能瓶颈的操作,比如访问数据库、IO、还有一些需要一定规模计算量的计算结果也可以缓存。

JimLiu | 园豆:300 (菜鸟二级) | 2008-09-17 13:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册