【发布时间】:2011-05-22 11:12:06
【问题描述】:
问题很简单,CalledOften1和CalledOften2之间哪个更快
class MyTest
{
public bool test = false;
void CalledOften1()
{
if (!test) test = true;
DoSomething();
}
void CalledOften2()
{
test = true;
DoSomething();
}
}
编译器是否已优化(如果可能)以避免将来分配测试(如果它已经是真的)?
更新: 这个问题只是一个信息,如果我可以写test=true,我不会使用if(bla)样式,我更喜欢代码可读性。
【问题讨论】:
-
找出哪个更快的唯一方法是双向运行,看看哪个更快。您已经以两种方式编写了代码;是什么阻止你运行它?
-
Mh 我不知道如何检查每项工作所需的毫秒数,我敢肯定在这里写这种类型的问题会更快
-
那么你有一个更大的问题:你不知道如何成功地进行性能分析。除非您打算每次遇到性能问题时都向社区询问,否则我的建议是学习如何进行性能分析。简而言之,以下是您进行性能分析的方法:(1) 设定以客户为中心的性能目标,(2) 编写并执行真实的测试,根据这些目标衡量应用程序的性能,(3) 如果您还没有达到目标,请学习使用分析器找到最慢的东西。 (4) 修复它。 (5) 返回步骤 (2)。
-
如果您想知道哪个更快,但您不知道如何使用高性能计时器,那么您可以(1)学习使用高性能计时器,或者(2 ) 编写一个循环运行代码十亿次;拿着秒表坐在那里等待它完成,然后将得到的秒数除以十亿。
标签: c# boolean variable-assignment