c# – StackOverflow如何优化显示问题的性能?

前端之家收集整理的这篇文章主要介绍了c# – StackOverflow如何优化显示问题的性能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试学习C#.net来编写一个Web应用程序.

并且了解到stackoverflow使用C#.net我很高兴发现它.

我注意到在主页或问题部分,每当我刷新页面时.页面总是以可接受的速度向我返回最新信息.

我不知道你是怎么做到的.很抱歉这一系列问题很长.我试图了解数据检索,分页,性能等的最佳实践

我知道主页只返回有限数量的问题及其统计数据,但问题部分实际上返回了所有内容.

你如何优化它?

>对于主页,您是否总是获取最近问题的所有统计数据?所以你的查询类似于“按* date *创建限制20从问题顺序中选择*”?

所以*包含所有信息,包括问题标题,身份证,观点等?

你使用HttpContext.Current.Server.cache来帮助吗?
>对于这些问题,这更令人感兴趣.

你怎么做分页

您是否始终只从数据库获取特定页面的结果?

或者你抓住所有结果并将其存储到数据集中?然后你使用某种数据网格控件来帮助分页

如果是后者,您如何维护要更新的数据?

解决方法

在Stack Overflow上,我们尝试在许多级别上使用积极的缓存:

>页面完全由IIS的输出缓存缓存,无论用户身份验证如何
>仅针对匿名用户缓存的页面;注册用户查看最新内容
>部分页面的html为每个人缓存; HttpRuntime.Cache用于此目的

主页由三个缓存的html片段组成 – 最近的问题,最近的标签,最近的徽章 – 每个都有不同的持续时间.

问题列表页面将缓存特定排序/标签过滤器的所有问题的ID(Int32 []),使得分页变得微不足道.还完成了对统计数据的进一步缓存(例如,问题计数,相关标签计数).

将为匿名用户完全缓存问题详细信息页面,而注册用户将查看最新商品.此外,侧面的相关问题将缓存到磁盘更长的持续时间.

虽然我们尝试尽可能地缓存整个页面,但我们确实在页面顶部显示用户信息 – 某些部分无法缓存.

所以看看缓存就像一个谜题 – 我的所有请求之间可以安全地共享哪些部分?根据费用,我的所有请求必须共享哪些部分?

猜你在找的C#相关文章