C# 我是否完全误解了如何使用VisualStudio';s 2008剖析器?

C# 我是否完全误解了如何使用VisualStudio';s 2008剖析器?,c#,visual-studio-2008,profiling,c++-cli,C#,Visual Studio 2008,Profiling,C++ Cli,抱怨{ 当我使用Visual Studio 2008的profiler(从“分析”菜单选项)评测代码时,我总是感到非常沮丧。在我看来,这是VS设计最差的功能之一,每次需要使用它时我都会畏缩 } 关于它的用途,我有几个问题,我希望你们能给我一些建议:-) 您是否需要在Debug或Release中构建项目来评测它们?有一个对话框(我不知道如何返回)提到我应该在发布时进行配置。好的-我这样做-当我运行代码时,它告诉我我缺少PDB文件。令人惊叹的。所以我回到调试模式,试着运行它,它告诉我有一半的项目需要

抱怨{

当我使用Visual Studio 2008的profiler(从“分析”菜单选项)评测代码时,我总是感到非常沮丧。在我看来,这是VS设计最差的功能之一,每次需要使用它时我都会畏缩

}

关于它的用途,我有几个问题,我希望你们能给我一些建议:-)

  • 您是否需要在Debug或Release中构建项目来评测它们?有一个对话框(我不知道如何返回)提到我应该在发布时进行配置。好的-我这样做-当我运行代码时,它告诉我我缺少PDB文件。令人惊叹的。所以我回到调试模式,试着运行它,它告诉我有一半的项目需要在打开/PROFILE开关的情况下重新编译
  • 是否可以评测C++/CLI项目?打开/PROFILE开关后,有一半时间我的C++/CLI项目完全没有输出
  • 为什么在尝试分析C#项目时,它们会在报告中的模块视图名称列表下显示为0x0000001、0x0000002、0x0000003等?真的吗,VS?真正地你不能猜我的模块的名字吗
  • 因此,为什么函数名报告为0x0A000011、0x0600009、0xA0000068等
  • 为什么,哦,为什么VS要重建被评测的可执行文件的依赖关系树中的所有内容?如果您的解决方案中有5-6个项目,这可能不是问题,但是当您有70个项目时,甚至不用探查器也会更快
  • 你能推荐一些关于使用VS2008分析器的好指南吗

  • 我对那件事也有同样的感觉。最后我写了我自己的(我想要的只是像样的方法调用计时信息)。

    如果你发现它很难使用,有一个非常棒的.NET分析器叫做。如果你在调试非CLR项目,AMD有一个非常棒的统计分析器叫做

    两者都是免费的(!),而且非常容易使用。一个更好的选择,我希望从你上面的帖子中你已经准备好抛弃VS内置分析器了:)

    1.您是否需要在调试或发布中构建项目以对其进行评测

    通常使用释放模式

    6.你能推荐一些关于使用VS2008探查器的好指南吗

    第1步,下载

    第2步,按照屏幕上易于使用的说明进行操作

    第三步,看看容易阅读的报告


    说真的,与ANTS相比,Microsoft profiler是垃圾。

    只是一个一般性的评论。有两个原因可以让人们了解个人资料

  • 获取各种计时信息
  • 找出他们可以解决的问题,使他们的程序更快
  • 这些是非常不同的目标


    如果您的原因是第二个,那么使用探查器并不是唯一的方法

    先生,你可能就是我的英雄,我现在就去看看!除非我遗漏了什么,否则nprof在过去三年里没有任何活动。只需将100毫秒的代码打包成一个循环,执行1000次即可。大约100秒。暂停几次。看看是什么在浪费时间。将其固定,然后拆下外环。瞧,这很科学。调用堆栈上的任何指令都有X%的时间(比如20%),无论它是否是调用指令,都有机会节省X%的时间。一次处理一个线程。做你想做的,但如果你尝试,你会看到。。。。我遇到的一件事是,人们对“罪魁祸首”有一个概念,就好像他们对罪魁祸首有一个事先的概念一样。该方法找到了“罪魁祸首”(并非预期),但有实际成本。然后你可以重复一遍。任何罪魁祸首,甚至“罪魁祸首”最终都会以这种方式被找到。蚂蚁分析器非常容易使用,但不如VisualStudio2008的分析器强大。大多数情况下,ANTS Profiler只需支付使用Visual Studio Profiler的10%的费用,就可以完成您想要的任务。要用相关问题补充Mike的答案:。