|
|
1
67
imho,针对可读性和理解性进行优化-与您在现实世界中花费的时间相比,任何运行时性能的提高都可能是最小的,当您在几个月内回到这段代码中,并尝试了解您最初在做什么。 |
|
|
2
71
你在努力 micro-optimize 在这里,这通常是一个很大的禁忌。除非你有性能分析显示这是一个问题,它甚至不值得改变。 一般来说,正确的答案是任何更容易维护的东西。 不过,对于它而言,空合并运算符的IL是:
开关的IL是:
对于
null coalescing operator
,如果值为
如果不是
当然,这假设所有的IL操作都花费相同的时间,但事实并非如此。 不管怎样,希望你能看到,在这种微观规模上的优化是如何开始迅速减少收益的。 也就是说,在大多数情况下,在这种情况下,最容易阅读和维护的内容都是正确的答案。 如果您发现这样做的规模被证明是低效的(并且这些情况很少而且相距很远),那么您应该衡量一下哪个性能更好,然后进行特定的优化。 |
|
|
3
18
除非你真的 测量 性能,这一切都在你的头脑和闲置的猜测。 (不是特别挑剔你,但对于不包含“度量”一词的性能微优化(以及许多答案),一个接一个的问题是令人失望的。) |
|
|
4
7
我怀疑不会有任何性能差异。
除此之外,我想知道,在这种情况下,为什么你会有任何倾向于一种说法而不是另一种说法的顾虑?我的意思是:性能影响(如果应该有的话)是最小的。imho,这是一种微观优化,不值得这么做。
|
|
|
5
7
在这种情况下,几乎没有显著的性能差异。 当性能差异可以忽略不计时,这就是 可读代码 . |
|
|
6
3
为了讨论…如果/那么/否则运行速度和?:三元操作,速度与单个级别开关/case语句一样快。 Here are some performance benchmarks with the C# code. 只有当您开始深入了解2-3个级别的case语句时,性能才会受到严重影响。也就是说,类似于这个荒谬的例子:
|
|
|
7
1
这是一个机器级代码是有效的还是人类可读的代码的问题。 当我们使它对我们更具可读性时,它使机器对代码进行复杂的解释,反之亦然… |
|
|
Questor · 宏生成链式else if 1 年前 |
|
|
M 93 · 如果公式(总和小于30,则四舍五入tp 30) 2 年前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 2 年前 |
|
|
Filippo Marolla · 根据R中的多个条件计算分数 2 年前 |
|
|
Ryrich · 3或5的倍数可以用else if语句来完成吗? 2 年前 |
|
|
x GutterRat x · 如何使此方法始终返回非负值? 2 年前 |
|
|
Ruslan199 · python中的条件列出了理解 2 年前 |