【问题标题】:How to detect the performance issue of a multi-threaded C# application?如何检测多线程 C# 应用程序的性能问题?
【发布时间】:2014-04-29 15:59:06
【问题描述】:

我有一个多线程 C# 应用程序。大多数情况下,所有 CPU 内核都被 100% 占用。但是在一段时间内,CPU sage 下降到

以及如何识别占用CPU较多的代码?

【问题讨论】:

  • 您考虑过使用分析工具吗?
  • 我不知道该用哪一个。我目前正在尝试学习一个。
  • JetBrains dotTrace。 '纳夫说。
  • 不,这通常需要并发分析器。 Visual Studio 有一个非常好的,值得高级版的价格。
  • 您想检测导致 CPU 处于 30% 还是 100% 的原因?如果您想检测 30%,那么您希望应用程序如何确定负载较低的原因?

标签: .net multithreading performance


【解决方案1】:

在 Visual Studio 中,您可以设置断点并使用 the parallel stacks viewer. and here

您还可以创建进程的内存转储(使用任务管理器)并查看 Visual Studio 中的线程或open the dump in WinDBG.

WinDBG 在进程卡住或想要查看内存和/或find threads that are deadlocked时非常有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多