【发布时间】:2018-09-04 20:15:46
【问题描述】:
我对效率有点着迷,但我一直无法找到这个问题的明确答案。其中一种是否比另一种更有效/更好,如果是,为什么?
非静态函数中使用的静态类变量:
public class Example {
private static int index;
private void Test() {
index = 0;
}
}
函数内部声明的变量:
public class Example {
private void Test() {
int index = 0;
}
}
index 变量将仅由 Test() 函数使用。
运行时速度比内存使用更重要。如果答案因语言而异,那么我特意询问的是 C#。
提前谢谢你:-)
【问题讨论】:
-
你可能有两种不同的行为。您正在将苹果与橙子进行比较。但是,如果
Test()是唯一要使用index的方法,请在该方法中创建变量。 -
这不是一个效率问题——它是一个正确性问题。他们做非常不同的事情。
-
因为你的两个类实际上都没有做任何事情;将它们都删除会更有效。
-
当代码使用函数中声明的变量运行时,每次调用函数时程序是否需要分配内存?与分配一次的静态类级变量相比。
-
我建议你做一些实际的基准测试。你读过ericlippert.com/2012/12/17/performance-rant吗?
标签: c# performance processing-efficiency coding-efficiency