Сравнение производительности Целочисленный многомерный массив против массива структур - PullRequest
0 голосов
/ 27 января 2011

Являются ли многомерные массивы лучше, чем массив структур, если существует только один тип данных?Например, будет ли массив:

struct data{
    short datapointa;
    short datapointb;
    short datapointc;
}

лучше, чем

short data[100][100][100][100];

Что, если существует несколько типов данных, несколько массивов будет лучше, чем массив struct?

Ответы [ 2 ]

2 голосов
/ 27 января 2011

1, измерить

2, вам нужно посмотреть, что компилятор на самом деле генерирует как код, а затем рассмотреть такие вещи, как размер кэша и количество ядер.

3, затем измерить

Нет смысла думать о микрооптимизации, пока вы не измерили, является ли скорость проблемой, и есть ли разница в скорости.

1 голос
/ 27 января 2011

Это будет зависеть в основном от вашего шаблона доступа. Вы должны выбрать ту структуру данных, которая обеспечивает наилучший локальный доступ - в идеале вы должны обращаться к памяти непрерывно, чтобы наилучшим образом использовать кэш и минимизировать трафик шины памяти. Очевидно, это будет зависеть от того, какой алгоритм (ы) вы используете с этими структурами данных, и в какой-то степени от того, как вы реализуете эти алгоритмы.

...