我试图确定一个很长的(imho)ASP.NET应用程序初始启动的原因。ASP.NET启动性能分析网络
该应用程序使用各种第三方库,并且我确信可以合并很多引用,但是,我试图找出(并归咎于)dll以及它们对扩展启动过程有多大贡献。
到目前为止,启动时间从2-5分钟不等,具体取决于盒子上其他物品的使用情况。基于网站的复杂性,我认为这是不可接受的,我需要将其降低到最多30秒的范围内。
为了清楚我正在寻找的性能范围,这是从第一次请求到最初的Application_Start方法被击中的时间。
那么我从哪里开始获取关于哪些DLL被加载的信息,以及它们需要加载多长时间,以便我可以尝试将成本/收益放在一起,以便我们需要解决/合并。从能力的角度来看,我一直在使用JetBrains dotTrace一段时间,并且我清楚如何在应用程序中对应用程序进行基准测试,但看起来这是应用程序代码之外的,并且因此超出了我目前所知的范围。
我在找的是关于如何在我的代码中获得第一个入口点之前发生的情况的方法。
注意:我知道我可以在回收/升级时调用默认页面来执行初始加载,但我宁愿解决实际问题,而不是在其上进行清理。
注2:硬件超过规模足够大,并在功能方面分开,所以我相当肯定,这不是问题。
请与“这是项目*不可接受*”或“这是*我看来不可接受*”,因为答案将是显着不同的决定:一个是什么(如果有的话)做,以实现生产应用程序的目标,另一个 - 如何娱乐/教育你自己的负载性能。 –
2-5分钟的启动时间可能会同时满足这两个标准。如果应用程序域回收并且服务停止2-5分钟,我无法想象任何可以接受的开发人员*或*项目。 –
我会更新的问题,这是Application_Start方法中被击中前的时间。 – Martin