Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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 Win8+的长表单加载时间;仅限释放模式_Vb.net_Winforms - Fatal编程技术网

Vb.net Win8+的长表单加载时间;仅限释放模式

Vb.net Win8+的长表单加载时间;仅限释放模式,vb.net,winforms,Vb.net,Winforms,我有一个选项winform,在一个选项卡式对话框上有50个左右的简单控件。在Windows 8上,当以发布模式编译(.NET4,VS2012)时,表单第一次显示需要10-15秒。后续显示小于1秒。在Windows 7上编译为调试或配置时,窗体始终显示

我有一个选项winform,在一个选项卡式对话框上有50个左右的简单控件。在Windows 8上,当以发布模式编译(.NET4,VS2012)时,表单第一次显示需要10-15秒。后续显示小于1秒。在Windows 7上编译为调试或配置时,窗体始终显示<1秒

我如何着手诊断问题?我需要一些想法


显然,JIT试图在Win8/Release设置上做一些特殊的事情?由于调试中不存在此问题,因此附加Ants profiler没有任何帮助。此外,我暂时避免使用Ngen,因为我使用UnsafeLoadFrom解析子文件夹中的本机x86/x64二进制文件。

在延迟期间暂停调试器,查看调用堆栈。听起来不像是典型的缓慢.NET冷启动。当然,在调试时不会发生这种情况,因为.NET程序集已由VS加载到内存中。您可以通过获得更快的磁盘来加速它。或者经常启动它,以便Windows预取器学会提前加载DLL。在调试模式下编译并在VS磁盘即SSD外部运行时不会发生这种情况。我同意这是一个冷启动问题,但某种程度上只针对Win8/Release。此外,所讨论的表单不在dll中。只是提示:尝试禁用调试“仅我的代码”、非托管代码调试、框架调试和符号服务器(我不确定是否全部)。连接到流程,尝试暂停并查看您所在的位置。也可以在VisualStudio中获取内存转储并对其进行分析。