Performance 如何在html中存储动态生成的页面?

Performance 如何在html中存储动态生成的页面?,performance,asp.net-mvc-3,Performance,Asp.net Mvc 3,我正在开发ASP.net MVC3 Web应用程序,该应用程序面临可伸缩性问题 为了提高性能,我希望将动态生成的页面存储在html中,并直接从生成的html提供服务,而不是为每个页面请求查询数据库 我相信这将大大提高性能 任何人都可以分享一些关于如何做的提示/例子/教程吗?挑战是什么 我还想知道其他人是如何处理大型电子商务网站的性能问题的,这些网站至少有1000个类别,20万个产品至少有200-500个并发访问者?最好的方法是什么 提前谢谢 不需要这样做,只需启用输出缓存即可。它将是相同的,而不

我正在开发ASP.net MVC3 Web应用程序,该应用程序面临可伸缩性问题

为了提高性能,我希望将动态生成的页面存储在html中,并直接从生成的html提供服务,而不是为每个页面请求查询数据库

我相信这将大大提高性能

任何人都可以分享一些关于如何做的提示/例子/教程吗?挑战是什么

我还想知道其他人是如何处理大型电子商务网站的性能问题的,这些网站至少有1000个类别,20万个产品至少有200-500个并发访问者?最好的方法是什么


提前谢谢

不需要这样做,只需启用输出缓存即可。它将是相同的,而不是点击所有创建页面的逻辑,而是从缓存而不是磁盘检索静态页面。

您应该看看

它提供了几种缓存控制器输出的方法,如下所示:

[OutputCache(Duration=10, VaryByParam="none")]
public ActionResult Index()
{
    return View();
}

我将考虑为常用页面实现缓存系统。Net平台有一些非常好的缓存库,可以用来实时管理缓存

缓存最佳实践 msdn.microsoft.com/en-us/library/aa478965.aspx


我还可以看看如何编写一个restful API,它可以跨集群的多个节点进行负载平衡。

您知道容量瓶颈在哪里吗

我的猜测是,你的数据库是瓶颈,但除非你测量找出瓶颈在哪里,否则你可能会花很多时间优化那些可能没有多大区别的事情

首先要做的事情是获取PAL的副本,监视web服务器和DB,看看它告诉您什么

还可以运行SQL查询来诊断最昂贵和最频繁的查询

测量您实际的页面生成时间,并沿着堆栈向下跟踪,以查看正在进行哪些调用,哪些调用比较昂贵,哪些可以缓存

与输出缓存不同,我通常会在Web服务器前面引入缓存层,并在应用服务器和DB之间引入缓存层,但如果不进行测量,则很难判断


如果您想了解更多有关缓存的一般信息,我会阅读我不久前写的回答

如果您告诉它,它会的。静态页面是内核缓存的,动态页面是动态的,所以它们不是-您必须告诉它通过OutputCache缓存它们,如下所述