如何在应用程序启动前跟踪ASP.NET Web窗体?

a5g8bdjr  于 2023-02-14  发布在  .NET
关注(0)|答案(1)|浏览(136)

我正在开发一个基于ASP.NETWebforms和. NETFramework4.6.2的遗留应用程序。
在本地计算机上启动应用程序的初始页非常慢,我正在尝试解决此问题。我在Global.asax Application_Start方法上放置了一个断点,甚至在命中断点之前也要花费相当长的时间。我想知道如何准确跟踪Application_Start事件之前发生的事情(做了什么调用,使用了外部库等等),从我向服务器发出第一个请求的那一刻起,这样我就可以得到一个提高性能的起点。

zdwk9cvp

zdwk9cvp1#

好吧,在VS中创建(或打开)一个只包含hello world的aspx页面。这个页面加载时间长吗?
公平地说,创建一个全新的空白asp.netwebforms项目,并检查该项目是否加载缓慢。
换句话说,这可能只是意味着你的电脑很慢。
按下f5键时,则:
项目代码被编译。然后一堆信息被“复制”,设置,然后配置为IIS启动。然后启动整个Web服务器(IIS Express),然后加载网页,然后IIS处理该页面,然后呈现它。
换句话说,一船启动的东西发生了。一旦整个大的网络服务器被假脱机,然后,只有在那时,你的应用程序启动,所有的爵士乐开始。
如果你可以导航到另一个页面(比如说从菜单栏(假设你的应用程序有一个)),然后返回到那个加载缓慢的页面?第二次点击那个页面时,页面加载是否会变慢?
如果是这样的话,那么你的计算机可能很慢,内存不足,甚至需要启动整个系统来运行整个Web服务器。
如果页面一旦显示,一切正常,那么这就不是一个加载缓慢的网页,而是一个加载缓慢的整个网站,在系统的实际使用和生产中,那么它就不是真的很慢了,是吗?
所以,如果你的电脑只有8 G,或者说笔记本电脑处理器很低或很慢,那么运行整个网络服务器系统所需的所有“巨大”移动部件的启动可能是问题所在,而不是页面加载真的很慢。
而且由于生产系统不会每次从100%从头重新加载整个Web服务器系统,因此您很可能没有一个缓慢的系统,而只是一个缓慢的“第一次”启动。
那么,其他基于.net framework和www.example.com页面的网站项目是否asp.net一开始就很慢呢?
这是asp.net网站,还是ASP.NET网站(应用程序)项目?
所以,相当多的“倒立”会发生在第一次运行和加载网站。所以,这可能是你的电脑,并不是真的网站很慢。
话虽如此?
我有一些发现网站项目加载相当慢,这是特别是在asp.net网站应用程序的情况下。(相对于网站的,这往往会加载一个整体快得多-约1秒,另一个是需要约18-23秒在我的旧笔记本电脑(它是饥饿的处理)。
在一台旧的笔记本电脑上,我看到击中f5后大约有18-23秒的延迟。在我的新笔记本电脑上,我有大约2秒,有时3秒的延迟,从我在代码或标记中击中f5来查看结果和网站运行。
所以,往往IIS要加载并启动,可能SQL Server要启动,甚至更多的位和部分。所有这些东西在您的开发机器上可能会花费很长时间,但是在生产服务器上,所有这些东西都在一直运行。
所以,它不清楚,如果你有一个非常缓慢的网站,缓慢加载“特定”网页,或者你只是谈论整体缓慢加载时间为“任何”第一页显示,然后在那之后,一切都很好?换句话说,它是f5开始的事情是缓慢的时间点。
你甚至没有注意到这里的延迟和时间?
你说的是5秒还是50秒?
右键单击任务栏、任务管理器。
这是我在我的笔记本电脑上点击f5。注意6核在启动过程中达到100%的最大速度和功率。
我确实知道,在我的笔记本电脑上,当我点击f5时,所有6个核心(12个线程)都会跳变大约2ghz到4ghz,所有6个核心都会被固定2-3秒,而整个Web服务器都会被创建、配置,然后启动,然后必须加载相关页面。
所以,这里你可以看到,按下f5,网页“开始”几乎瞬间,然后约4秒多。
(the处理器使用率有点高-部分是由于运行此屏幕截图的屏幕捕获)。

所以,当我按下f5键时,你可以看到处理器跳变到20%以上,我数了大约不到1秒浏览器就会出现,然后又是大约4秒,上面的页面加载速度较慢,页面一显示,你就会看到cpu下降。
如前所述,尝试创建一个新的asp.net网站“应用程序”。一个网站,他们往往加载〈1秒。事实上,以上是“迄今为止”最慢的启动我有。大多数是大约1-2秒,从击中f5。
一个asp.net网站应用程序?它们需要更长的时间--每次都要编译整个网站,并且必须创建.dll文件。
有时候,它很简单,比如一些虚拟文件夹Map到一个不存在的位置(所以在启动时,一个不存在的文件夹或路径名可能需要一些时间才能“超时”。
那么,一个新的测试项目(创建一个新的asp.net网站应用程序(创建一个应用程序,而不是一个网站)有多快呢?我发现网站加载速度很快-即使在硬件有限的计算机上。

然而,asp.net网络“应用程序”的加载速度往往要慢得多(因此,更多的RAM、更多的CPU和更多的CPU内核会在启动时间上产生巨大的差异)。
性能在我们这个行业是一种真实的的艺术形式。但是,更多的细节,比如所有的“应用程序”网站在你的开发盒上启动都很慢,还是只是这个,以及与其他网站相比慢了多少。
通常,延迟可能是到数据库的网络连接,并且可以说与启动几乎没有关系,但是在连接到sql server时的一些网络延迟,这很可能是某种类型的网络连接。
所以,所有的第一页都很慢,还是只有一页?
一个新的asp.net网站应用程序(应用程序在这里很重要-不仅仅是网站)也启动缓慢吗?(如果是,那么这不是特定于您的网站,是吗???)。
使用任务管理器--在启动过程中你看到cpu的使用率很高(f5),还是很低?(这意味着网络和连接延迟--而不是cpu和内存以及性能问题。
因此,这里需要更多的故障排除,但是话又说回来,我们对您目前为止所做的测试几乎一无所知,例如在您的计算机上测试另一个网站应用程序,以及它是否涉及身份验证和sql server登录之类的事情。
我的意思是,我们可能会有一些问题,一辆车不会启动。所以,我们不只是交换了发动机,重新做燃油喷射系统,然后才发现我们忘了放一个新的电池,这是问题沿着。
所以,做一些测试-得到一些基线说,一个测试网站-使用一个模板,有“默认”引导菜单,母版页等启动有多快?因为如果该网站也启动缓慢,那么试图解决现有网站将是徒劳的,因为所有的网站加载缓慢-不只是“一个”网站你的工作。

相关问题