【问题标题】:Visual Studio F5 debugging is slower than Attach to ProcessVisual Studio F5 调试比附加到进程慢
【发布时间】:2014-10-30 07:06:26
【问题描述】:

如果我使用 F5(调试)启动我的应用程序,则执行某个操作大约需要 2000 毫秒。如果我用 F5 + CTRL 启动应用程序(没有调试)并用“附加到进程”附加 Visual Studio,它只需要 100 毫秒。

有人知道什么组件会导致此性能“问题”吗?

C# 应用程序/VS 2012。

编辑

代码截断:

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
changed.Validate(context);
stopwatch.Stop();
Console.WriteLine(stopwatch.ElapsedMilliseconds);

【问题讨论】:

  • 是您自己触发操作吗?你是怎么开始的?
  • 点击一个按钮就可以了。
  • 这是正常的,并且可以预期在附加调试器时事情会变慢。通常应用程序是在没有附加调试器的情况下使用的,因此在没有调试器的情况下测量“性能”。这是一个问题吗?我知道一些巨大的应用程序调试起来很烦人,因为当附加调试器时它们变得非常慢。
  • 第一名很烦人。但我不明白 F5(调试)和“附加到进程”之间有什么不同都附加了调试器,但第一个慢了 2000%。
  • Visual Studio 的哪个版本?表示?亲?终极?

标签: c# performance visual-studio debugging visual-studio-2012


【解决方案1】:

有一个很大的不同是在 F5 或调试时 Visual Studio 会加载所有 pdb 文件。pdb 文件是程序数据库文件,是您能够调试的原因。如果您在构建模式下编译,您将查看 bin 文件夹,其中包含与每个 dll 对应的 .pdb 文件。

更多关于 pdb 文件:http://msdn.microsoft.com/en-us/library/yd4f8bd1(vs.71).aspx

关于此主题的一篇文章 http://blogs.msdn.com/b/zainnab/archive/2010/11/01/start-debugging-vs-start-without-debugging-vstipdebug0037.aspx

【讨论】:

  • 感谢您的提示。我看到了这篇文章。但是 pdb 的负载应该只影响它们的第一次负载吗? “附加到进程”也会加载 dps pdb。 => 应该以与 F5 相同的方式产生影响。
  • 这不仅仅是启动时间。从 F5 开始,我得到 20% 的持续 CPU 使用率,而附加到进程它为零。这是针对在 IIS 中运行的 .NET Framework 应用程序,当我什至没有访问服务器时。如果我运行该应用程序,那么无论我以何种方式运行它,它都会在断点处停止。真的很糟糕!
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多