猿问
下载APP

Visual Studio调试/加载速度很慢

Visual Studio调试/加载速度很慢

我的智慧结束了。Visual Studio 通常很难调试,或者只是简单地加载(“启动而不调试”)我的ASP.NET MVC站点。并非总是如此:首先,项目将加载得很好而且速度很快,但是一旦加载速度变慢,它们总是会在此之后加载缓慢。我可以等待1-2分钟或更长时间。

我的设置:

我目前正在使用Visual Studio 2012 Express,但我在Visual Studio 2010 Express中也遇到了同样的问题。我的解决方案存储在网络驱动器上; 具体来说,如果重要的话,它的My Documents会重定向到网络驱动器。(它不应该。有时我的网站在此设置下加载速度非常快。)

我通常在Internet Explorer 9中加载,但在Firefox中也会出现同样的问题。

这可能发生在我工作的任何ASP.NET MVC项目中,它似乎围绕着DisplayTemplates,我的所有ASP.NET MVC项目都是这样做的。而这一切都是C#和Razor,如果重要的话。

症状:

系统将加载我的符号数百次。基本上,以下,但至少有300个这样的行,每个行对于相同的CSHTML,每个都有不同的DLL文件:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET 

在上面,我有三个DisplayTemplates:“Contact”,“Location”和“StatusCode”。似乎IIS每次调用displaytemplate时都会加载符号两次。因此,如果我显示一个包含100个条目的表,这些条目调用所有这三个displaytemplate,则加载600个单独的符号。

这也不是一个快速的操作。查看IIS生成的日志文件,每个符号加载大约需要200毫秒。因此,超长延迟。

要回答更多问题,是的,我的机器肯定有马力。令人愤怒的事情是,同样的项目,改变了NOTHING,有时可以非常快地加载,通常在我修复IIS Express并删除My Docs\IISExpress文件夹之后。最终会发生“某事”,再次加载需要2分钟。我正在做的不是一个复杂的项目。没有外部库或依赖项,我的VS.NET没有任何附加组件。

值得注意的是,该机器具有Symantec Endpoint Protection,它具有造成严重破坏的历史。但是直接禁用它(成为管理员很好)并没有解决问题。

我现在有一个理论。我想这都是因为我正在关闭网络共享的重定向文件夹。当调试器经历了数百个“加载符号”行时,我停下来看看它在做什么。这是在我的代码中,加载我有的DisplayTemplat

看起来Visual Stuio 每次调用时都会重新编译我的displaytemplate ,这也是数百次。我的理论是Visual Studio编译文件,将其保存到网络共享,网络共享然后以某种方式在其上标记新的时间,然后Visual Studio认为文件已更改,因此Visual Studio再次重新编译它。但只有一个理论; 我真的不知道。

首先,显然我有脱机文件(这是办公室里的台式电脑;我不在乎)。我明天要禁用,重启和重试。

另外,将我的项目按原样移动到本地C:修复它。它加载速度非常快。但这在工作环境中并不理想。我丢失了以前的版本,我的代码根本没有备份,除非我手动复制它,并且它不再与任何人共享。

如果涉及它,我可以将它从C来回复制到网络共享。每个页面加载等待两分钟会更烦人。



湖上湖
浏览 111回答 3
3回答

收到一只叮咚

以下是我在Visual Studio 2012中解决“慢符号加载”问题的方法:转到工具 - >选项 - >调试 - >常规选中“启用我的代码”旁边的复选标记。转到工具 - >选项 - >调试 - >符号单击“...”按钮,在本地计算机上的某处创建/选择一个新文件夹以存储缓存的符号。我将其命名为“符号缓存”并将其放在Documents - > Visual Studio 2012中。单击“加载所有符号”并等待从Microsoft的服务器下载符号,这可能需要一段时间。请注意,“加载所有符号”按钮仅在调试时可用。取消勾选“Microsoft Symbol Servers”旁边的复选标记,以防止Visual Studio远程查询Microsoft服务器。单击“确定”。从现在开始,符号加载应该快得多。请注意,如果对Microsoft程序集进行任何更改/下载,则可能需要再次返回“符号”对话框和“加载所有符号”。

当年话下

关闭intelliTrace为我解决了这个问题。在Visual Studio中,工具 - >选项 - > IntelliTrace然后,取消选中“启用IntelliTrace”复选框。

富国沪深

这些都不适合我,但我在删除的符号上找到了一个断点。似乎2010年就是它。要查看这是否是您的问题,请执行debug-> windows-> breakpoints如果有任何内容,请删除它们。桑德斯提到他检查了这一点,但在这个问题的解决方案中没有提到。也许是某些人的常识,但不是我们所有人。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答