从结构分配一次数据或多次提取数据是否更有效?

时间:2019-04-15 15:45:56

标签: matlab performance data-structures

我必须多次运行某些功能;此函数采用特定结构sc作为输入。在函数内,多次使用结构中的某些值(例如sc.asc.b)。

我有两个选择:

  1. 分配a=sc.a并在函数中每次需要使用a
  2. 每次在函数中需要时提取sc.a

其中哪些效率更高?在(1)中,我使用了额外的内存来分配a,而在(2)中,我多次提取了sc.a

1 个答案:

答案 0 :(得分:2)

如果您有大量的操作,数组的速度会更快。

这几乎与语言无关。数组由于在内存中彼此相邻而更易于访问,而使用结构则破坏了内存模式,因此您禁用了缓存的可能性,因此需要更多的时间来读取内存。最重要的是,MATLAB的openMP /多线程操作可以在数组中很好地工作,而在结构中则不能。