我正在尝试确定 ASP.NET 应用程序初始启动时间很长(恕我直言)的原因。
该应用程序使用各种第三方库,并且我确信可以合并许多引用,但是,我正在尝试识别(并分配责任)dll 以及它们对扩展启动过程的贡献。
到目前为止,启动时间从 2-5 分钟不等,具体取决于盒子上其他东西的使用情况。基于站点的复杂性,我认为这是不可接受的,我需要将其减少到最多 30 秒的范围内。
为了明确我正在寻找的性能范围,这是从第一个请求到初始 Application_Start 方法被命中的时间。
那么我从哪里开始获取有关加载哪些 DLL 以及加载它们需要多长时间的信息,以便我可以尝试将我们需要解决/整合的成本/收益放在一起。
从能力的角度来看,我使用 JetBrains dotTrace 已经有一段时间了,我很清楚一旦我们进入应用程序后如何对应用程序进行基准测试,但它似乎在应用程序代码之外,因此在什么之外我目前知道。
我正在寻找的是关于如何在我的代码的第一个入口点之前了解正在发生的事情的方法。
注意:我知道我可以在回收/升级时调用默认页面来进行初始加载,但我宁愿解决实际问题,也不愿在上面糊涂。
注意2:硬件在功能方面已经足够扩展和分离,因此我很确定这不是问题。