【发布时间】:2014-08-04 12:33:41
【问题描述】:
我正在使用 ASP.NET MVC 作为其前端客户端的多层 Web 应用程序。此 Web 应用程序的特定页面需要很长时间才能加载。大约 30 秒。
我下载了dotTrace 并在我的应用程序上运行它(在this tutorial 之后)。我发现我的应用程序很慢的原因。
事实证明,这是因为我拥有的一个特定方法做了很多工作(需要时间),而同一个方法总共被调用了 4 次。
这是来自 dotTrace 的屏幕截图,显示了上述内容:
有问题的方法是GetTasks()。因此,为了提高 Web 应用程序的速度,我想为每个请求缓存从GetTasks()返回的数据。
如果我的想法是正确的,这将真正改善我遇到的速度问题。
我的问题是,我怎样才能做到这一点?我以前从来没有做过这样的事情。对于每个新请求,我如何缓存从GetTasks() 返回的数据,并将其用于所有后续对GetTasks() 的调用。
【问题讨论】:
-
您的任务是否有某种可以识别它们的唯一标识符?
-
是的,他们有身份证?
-
缓存可以通常有很大帮助。还要检查的一件事是电线上实际发生了什么。查询效率高吗?我发现我的许多查询最初都很有效,需要一些调整(索引)来改进。
-
@itsmatt 谢谢,是的,这就是我接下来要做的。首先需要让缓存工作。
标签: c# asp.net-mvc-4 caching data-access-layer dottrace