Visual Studio 性能分析器:开括号上的行数
Posted
技术标签:
【中文标题】Visual Studio 性能分析器:开括号上的行数【英文标题】:Visual Studio Performance Analyzer: Line count on open brace 【发布时间】:2013-02-04 10:53:08 【问题描述】:我正在尝试评估我正在编写的程序的性能。
我有一个方法:
public double FooBar(ClassA firstArg, EnumType secondArg)
[...]
如果我在 FooBar 的 VS 性能分析器中检查函数详细信息,我可以看到该方法占总时间的 14%(包括在内),而这 10% 花费在方法本身的主体中。我无法理解的是,看起来总时间的 6.5%(包括和不包括在内)都花在了这种方法的大括号上;它实际上是代码中最耗时的一行(作为专有时间问题)。
该方法没有覆盖任何其他方法。分析是在调试配置中使用采样完成的,运行持续大约 150 秒,其中 6.5% 对应于总共 48000 个样本中的 3000 多个样本。
有人能解释一下这行发生了什么吗?是否有办法改善这种行为?
【问题讨论】:
【参考方案1】:在方法的第一个大括号中显示了方法初始化所花费的时间。
在方法初始化期间,局部变量被分配和初始化。 请注意,方法的所有局部变量都在执行之前初始化,如果在主体中间声明。
为了减少初始化时间,尝试将局部变量移动到堆中,或者,如果它们只是偶尔使用(如 if 分支中的变量或返回后的变量),则将使用它们的代码段提取到另一个方法中。
【讨论】:
以上是关于Visual Studio 性能分析器:开括号上的行数的主要内容,如果未能解决你的问题,请参考以下文章