【发布时间】:2009-05-03 18:15:40
【问题描述】:
我最近在我闪亮的新 VPS 上部署了一个 ASP.NET 应用程序,虽然我对 VPS 可以提供共享托管解决方案的总体性能提升感到满意,但我对我的启动时间不满意申请。
当我的客户第一次点击它时,我的 Web 应用程序需要相当长的时间才能启动。我没有在调试模式下运行它(在我的 web.config 中禁用它),并且它在启动时没有任何实际工作要做 - 我的应用程序启动事件处理程序中没有代码,我没有启动任何多余的线程,什么都没有。我的客户第一次点击我的应用程序需要 15-20 秒才能做出响应。后续调用需要 1-2 秒,除非我等待几分钟让我的应用程序关闭。然后又回到 15-20 秒的启动时间。
(我知道我的计时基准非常不科学,这些数字应该只是让我了解我的应用启动时的性能)。
我对 ASP.NET 的理解是 IIS(在本例中为 7.0),它会在第一次运行 Web 应用程序时对其进行编译,然后缓存这些二进制文件,直到 Web 应用程序发生更改。我的理解有误吗?
那么,在这本书般大小的序言之后,我的问题如下:
- 是不是我对ASP.NET编译的理解有误?它实际上是如何工作的?
- 有什么方法可以强制 IIS 缓存我的二进制文件,或者让我的应用程序无限期地保持活动状态?
- 如果在我之前的问题中做任何一件事情都是一个坏主意,为什么这是一个坏主意,我可以做些什么来提高启动性能?
谢谢!
编辑:看来我的问题与this question 略有重复(我认为我在这里找到了答案,哈哈)。但是,我认为我的问题更全面,如果没有将其作为副本关闭,我将不胜感激,除非这里有更好的、已经提出的问题来解决这个问题。
【问题讨论】:
-
我将建议与其他类似问题的回答者建议的完全相同的方法。您确定该问题的答案不能满足您的需求吗?我认为他们很好地解释了这种情况。
-
@DOK,感谢您的反馈,就我的问题的“如何”而言,另一个问题很好,但我认为我的问题涵盖了更多“为什么”和此问题的最佳实践.
-
我认为 SO 上使用的搜索算法非常糟糕——因此出现了重复。
标签: asp.net performance iis-7