アーカイブ : 2024/08

[C#] ArrayPool を使用して ToArray のアロケーションを1回にする方法

一般的には List<T> を使用して要素を追加して行き、最後に ToArray() することで配列を作成します。
この方法では、最後の配列以外に作業用のヒープメモリ確保が発生してしまいます。
プールと構造体を使用することで、最後の完成した配列に対して1回のみメモリ確保する実装例です。

C# C# パフォーマンス 2024-08-08 (木)