【问题标题】:Can looping over a for() loop of low size take less time to execute? Apex/Salesforce循环一个小尺寸的 for() 循环可以花费更少的时间来执行吗? Apex/Salesforce
【发布时间】:2015-03-02 11:05:52
【问题描述】:

假设我有两个 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){} 

【问题讨论】:

  • 您是否正在尝试提高与顶点或 for 循环相关的性能?

标签: java performance time salesforce apex


【解决方案1】:

如果我理解了这个问题,那么您是在问迭代一个元素具有“较少”初始化属性的列表是否需要更少的时间。

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

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

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 2019-07-06
    • 2021-11-19
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2021-06-05
    相关资源
    最近更新 更多