在代码开始时声明变量与在需要时声明变量(可读性参数之外)在性能上是否有任何差异?
假设我有以下两个选项:
Option1:
public void methodA ()
{
int amount;
long id;
String name;
//do something
}Option2:
public void methodB ()
{
int amount;
//do something
long id;
//do something
String name;
//do something
}在我看来,选项2更美观和可读性更强,因此是我的首选。
Q:,但我只是想知道,与这些声明的位置有关的性能是否存在差异。
编辑:由于maaartinus的输入,我发现我的基准测试示例是错误的(现在删除了),我正在进一步研究如何编写/使用基准代码。
发布于 2014-07-01 03:31:41
对于这些情况,我不希望看到性能上的任何差异,至少在C++中是这样的(尽管我也会对Java中的实际差异感到有点惊讶)。
如果您将变量的定义移到类似循环的内部,并且它是一种具有重要初始化的类型,则会出现异常的排序:
int func() {
int amount;
long id;
string name;
while (something) {
// ...
}
// ...
}与:
int func() {
int amount;
long id;
while (something) {
string name;
}
// ...
}在后一种情况下,需要在循环的每一次迭代中创建和初始化string,这可能比在循环执行之前创建和初始化它一次要慢。
https://stackoverflow.com/questions/24502050
复制相似问题