启动时出现奇怪的VB.Net性能问题
我的exe(vb项目)启动时需要一分钟来显示主窗体。经过调查,我发现了以下问题。这可能看起来难以置信,但它正在发生。即使是谷歌搜索也无济于事 仅在exe中发生,从Visual Studio运行时不发生。 仅在释放模式下发生。 发生在所有机器上。所有用户都已在生产中使用。 连接到不同的数据库没有任何区别(不是数据加载问题)。 SQL Server探查器在这一分钟内未显示任何活动 记录显示,罪魁祸首似乎是以下几行:启动时出现奇怪的VB.Net性能问题,.net,vb.net,winforms,.net,Vb.net,Winforms,我的exe(vb项目)启动时需要一分钟来显示主窗体。经过调查,我发现了以下问题。这可能看起来难以置信,但它正在发生。即使是谷歌搜索也无济于事 仅在exe中发生,从Visual Studio运行时不发生。 仅在释放模式下发生。 发生在所有机器上。所有用户都已在生产中使用。 连接到不同的数据库没有任何区别(不是数据加载问题)。 SQL Server探查器在这一分钟内未显示任何活动 记录显示,罪魁祸首似乎是以下几行: gfrmMain=New frmMain'frmMain是一个windows窗体
gfrmMain=New frmMain'frmMain是一个windows窗体
进一步的日志记录显示,在frmMain构造函数中调用InitializeComponent()之前会发生一分钟的延迟
Public Sub New()
MyBase.New()
“一分钟后到达这条线-什么???
初始化组件()
...
端接头
进程监视器显示进程没有注册表、文件系统和网络活动。它只是闲置着
我尝试过的事情:
我也有同样的问题。我们发现它是.NET4.5.1。我们的应用程序的目标是.NET4.0,但最近4.5.1覆盖了这一目标。突然间,每12个表单中就有一个需要60秒才能加载,并占用300 MB的内存。请尝试重新加载运行正常的.NET版本(我们使用的是v4.0),然后通过Windows update停止对4.5.1的自动更新(隐藏更新),并告诉我您的操作方法。我还发现关闭发布模式的优化是有效的,但我决定不走这条路。启动后附加调试器并查看调用堆栈。。。可能是混合模式。。。或者使用任何探查器进行调查。您是否尝试以管理员或具有更高权限的某个帐户的身份运行它?启动后附加调试程序时,它运行正常。使用VS探查器运行正常。Exe在管理模式下运行,因为它是此应用程序的先决条件。忘记提及在这1分钟内,内存使用量从20 MB增加到1.3 GB,然后再次下降到20 MB。您是否尝试过更改项目生成顺序(如果可能)看看当前的启动项目需要时间还是任何可能的启动项目需要时间?你是对的。它在4.0中工作。不幸的是,我们不可能在每个用户的机器上卸载和隐藏更新。如果我在x86模式下发布,它也可以工作。我们可能会这样做,因为这将大大减少我们的头痛。接受你的答案,因为你有最有意义的解决方案