我必须多次运行某些功能;此函数采用特定结构sc
作为输入。在函数内,多次使用结构中的某些值(例如sc.a
和sc.b
)。
我有两个选择:
a=sc.a
并在函数中每次需要使用a
; sc.a
。其中哪些效率更高?在(1)中,我使用了额外的内存来分配a
,而在(2)中,我多次提取了sc.a
。
答案 0 :(得分:2)
如果您有大量的操作,数组的速度会更快。
这几乎与语言无关。数组由于在内存中彼此相邻而更易于访问,而使用结构则破坏了内存模式,因此您禁用了缓存的可能性,因此需要更多的时间来读取内存。最重要的是,MATLAB的openMP /多线程操作可以在数组中很好地工作,而在结构中则不能。