Теоретически, List <Struct>.GetRange () может быть так же быстро, как List[я]? - PullRequest
1 голос
/ 21 апреля 2019

Я собираюсь провести сравнительный анализ моего конкретного случая, но я хочу знать основные аргументы за или против выполнения следующих действий.

При отправке матриц для экземпляра геометрии, предполагая, что каждый пакет содержит Список позиций, где Позицияэто небольшая структура, мы могли бы:

(A) Итерировать по List<Position> и List<int> и использовать результат List<int>[i] для выполнения List<Position>.GetRange(offset, count), отправитьв графический процессор.

(B) Выполните итерацию по List<List<Position>>, отправьте List<List<Position>>[i] в графический процессор.

(Предположение составляет List<Position>.Count для пакета будет вполнемаленький.)

Интуитивно кажется, что (B) будет быстрее с точки зрения кэширования процессора, верно ли это в теории?

...