Unity에서 Unreal의 EQS를 구현중인데,

각 정점 피봇에 대한 점수 평가를 진행할 때 리스트를 그대로 사용하는건 메모리를 너무 먹을 것 같아서


예시)

var arr = new int[] { 0, 1, 2, 3 };

var left = arr.Take(arr.Length/2).ToArray();

var right = arr.Skip(arr.Length/2).ToArray();

(C#에서 이러면 이미 arr안에 모든 데이터가 있음에도 left, right에 대한 메모리 힙 할당이 또 일어남)

그래서 Span이란걸 사용하고 있는데, 이건 Linq를 이용해서 이리저리 만질수가 없음.

꼼짝없이 자질구레한 코드를 작성할 위기에 처했는데...
https://github.com/VictorNicollet/NoAlloq
이걸 발견함. LINQ for Span<T>라니... 진짜 구원받은 느낌이었음. 덕분에 코드가

3줄컷으로 끝남.


진짜 천상계들은 어떤 사람들일까... 그사람들은 세상 모든 인간들이 멍청해 보여서 따분하진 않을까