【发布时间】:2012-11-08 21:19:01
【问题描述】:
我有一个 ASP.NET (webforms) 应用程序托管在 Windows azure 上,在 XS 大小的实例上。一切都运行良好,除了当我在一段时间不使用该网站后第一次导航到该网站时,它真的很慢 - 比如超过 45 秒!一旦它启动并运行,页面又好又快;这只是需要很长时间的初始负载。
如何诊断这段时间用在了哪里?我已经在 SessionStart 事件中记录(到数据库),并且不同浏览器中的两个请求以 10 秒的间隔开始,都在同一秒内记录,建议我添加的任何日志记录或其他代码在花费所有时间之后才会执行。或者可能是数据库连接需要很长时间。
我意识到有几件事可能会影响这一点,例如
它位于 XS 实例上。它们并不大。
我的代码目前是在调试模式下构建的。这使得需要加载更大的程序集和 pdb 文件,因此它比它可能的要慢。
网站只需一点时间即可加载。这就是人们change the idleTimeout 和可能的回收间隔的原因。
我正在使用相当大的 Telerik 控件,其中包含 32mb 的 dll。 (但没有在第一页使用)。
但我想要一种方法,我可以用它来确定一直在占用什么,例如获得一些关于正在发生的事情和需要多长时间的测量,或者我可以做更多的事情来尝试让它更快地启动。
在我的带有本地数据库和网络的开发机器上,启动时间可能是 5 秒。 可能它只比 XS 实例快 10 倍,但如果是这种情况,我该如何计算出我的本地机器上花费的时间,以便我可以尝试改进它?
【问题讨论】:
标签: asp.net performance azure webforms azure-web-roles