Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动时出现奇怪的VB.Net性能问题_.net_Vb.net_Winforms - Fatal编程技术网

启动时出现奇怪的VB.Net性能问题

启动时出现奇怪的VB.Net性能问题,.net,vb.net,winforms,.net,Vb.net,Winforms,我的exe(vb项目)启动时需要一分钟来显示主窗体。经过调查,我发现了以下问题。这可能看起来难以置信,但它正在发生。即使是谷歌搜索也无济于事 仅在exe中发生,从Visual Studio运行时不发生。 仅在释放模式下发生。 发生在所有机器上。所有用户都已在生产中使用。 连接到不同的数据库没有任何区别(不是数据加载问题)。 SQL Server探查器在这一分钟内未显示任何活动 记录显示,罪魁祸首似乎是以下几行: gfrmMain=New frmMain'frmMain是一个windows窗体

我的exe(vb项目)启动时需要一分钟来显示主窗体。经过调查,我发现了以下问题。这可能看起来难以置信,但它正在发生。即使是谷歌搜索也无济于事

仅在exe中发生,从Visual Studio运行时不发生。 仅在释放模式下发生。 发生在所有机器上。所有用户都已在生产中使用。 连接到不同的数据库没有任何区别(不是数据加载问题)。 SQL Server探查器在这一分钟内未显示任何活动

记录显示,罪魁祸首似乎是以下几行:

gfrmMain=New frmMain'frmMain是一个windows窗体
进一步的日志记录显示,在frmMain构造函数中调用InitializeComponent()之前会发生一分钟的延迟

Public Sub New()
MyBase.New()
“一分钟后到达这条线-什么???
初始化组件()
...
端接头
进程监视器显示进程没有注册表、文件系统和网络活动。它只是闲置着

我尝试过的事情:

  • 取消选中释放模式的优化
  • 删除“MyBase.New()”-没有任何区别
  • 我不知道还能试什么

    注意:解决方案是c#和vb项目的混合。实际上,主vb项目和其余所有c#项目。这是几个月前开始的。在那之前一切都很好(几秒钟后发射)


    我也有同样的问题。我们发现它是.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模式下发布,它也可以工作。我们可能会这样做,因为这将大大减少我们的头痛。接受你的答案,因为你有最有意义的解决方案