【发布时间】:2023-03-18 02:26:01
【问题描述】:
在 C# 中,比较以下 三个 替代方案时,性能会有什么不同吗?
一个
void ONE(int x) {
if (x == 10)
{
int y = 20;
int z = 30;
// do other stuff
} else {
// do other stuff
}
}
两个
void TWO(int x) {
int y;
int z;
if (x == 10)
{
y = 20;
z = 30;
// do other stuff
} else {
// do other stuff
}
}
三个
void THREE(int x) {
int y = 20;
int z = 30;
if (x == 10)
{
// do other stuff
} else {
// do other stuff
}
}
【问题讨论】:
-
没有。您担心所谓的“微优化”:您是否进行了基准测试以确定您确实存在性能问题?
-
@Mitch:我在 Craig 的帖子中没有看到任何关于他的代码性能缓慢的抱怨。他有一个完全有效和聪明的问题要问,所以他做到了。就像我们不能发布任何涉及性能的@SO。
-
我什至不会称之为微优化,而是纳米优化。任何看过分析器输出的人都知道,担心存储变量或调用函数所花费的时间是微不足道的。
-
@Igor:这不仅仅是执行速度,我对内存使用感兴趣,因为最终这也会影响性能。如果变量是长字符串,那么它可能很重要。
-
@devoured elysium:标题是“在子块中声明变量会提高性能吗?”看起来很简单......
标签: c# scope variable-declaration