从理论上讲,List <struct> .GetRange()可以和List <list <struct >> [i]一样快吗?

时间:2019-04-21 06:21:30

标签: c# unity3d cpu-cache

我将以我的特定情况为基准,但是我想知道支持或反对进行跟踪的基本论点。

在提交几何实例化矩阵时,假设每个批次都包含一个位置列表,其中“位置”是一个小的“结构”,我们可以:

(A)迭代List<Position>List<int>,然后使用List<int>[i]的结果执行List<Position>.GetRange(offset, count),并提交给GPU

(B)遍历List<List<Position>>,将List<List<Position>>[i]提交给GPU。

(假设每批List<Position>.Count会很小。)

从直觉上讲,(B)看起来在CPU缓存方面会更快,理论上是真的吗?

0 个答案:

没有答案