Более эффективно назначать данные из структуры один раз или извлекать их несколько раз? - PullRequest
0 голосов
/ 15 апреля 2019

Мне приходится запускать определенные функции много раз; эта функция принимает определенную структуру sc в качестве входных данных. Внутри функции определенные значения из структуры (скажем, sc.a и sc.b) используются несколько раз.

У меня есть два варианта:

  1. Назначьте a=sc.a и используйте a каждый раз, когда это необходимо в функции;
  2. Извлечение sc.a каждый раз, когда мне это нужно в функции.

Что из этого более эффективно? В (1) я использую дополнительную память для присваивания a, а в (2) я извлекаю sc.a несколько раз.

1 Ответ

2 голосов
/ 15 апреля 2019

Массивы будут работать намного быстрее, если у вас много операций.

Это почти не зависит от языка. Массивы легче доступны благодаря тому, что они находятся рядом друг с другом в памяти, в то время как со структурами вы нарушаете структуру памяти, поэтому вы отключаете возможность кэширования, что требует больше времени для чтения из памяти. Кроме того, операции openMP / multi-thread в MATLAB отлично работают в массивах, а в структурах - нет.

...