可以循环遍历低大小的for()循环花费更少的时间来执行吗?顶点/ Salesforce的

时间:2015-03-02 11:05:53

标签: java performance time salesforce apex

假设我有两个SOQL查询。我认为同样的问题可以由Java或任何其他语言人员来回答。

Account[] a1= [select id from Account]; 
Account[] a2= [select id, name, etc.etc from Account];

我知道返回结果集的时间会有所不同,但是在它们上面循环会花费相同的时间。

像这样,

for(Account a : a1){} 
for(Account a : a2){} 

1 个答案:

答案 0 :(得分:2)

如果我理解了这个问题,你就会问是否迭代一个元素具有“less”初始化属性的列表会花费更少的时间。

首先,至少在Java中,如果Account有2个属性或200个属性,则无关紧要。 for循环遍历Account引用,因此它不会读取存储在每个实例中的实际属性(除非您在循环体中访问这些属性)。

其次,即使迭代元素的时间取决于每个Account实例的大小,如果您只将值赋给Account的ID属性或将值赋给其他属性也无关紧要。每个Account实例的大小仍然相同,因为此大小由Account类的所有属性(原始类型和引用类型)的大小确定,并且无论您是初始化还是离开,它们都占用相同的空间它们的默认值为。