mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-07-22 02:00:59 -05:00
chore: ArraySegment.ToArray()の呼び出しによるGC Allocを軽減
ArraySegment.AsSpan() によって Span を取得し、 NativeArray.AsSpan() で得たコピー先 Span に向けて Span.CopyTo() によるコピーを行う。 data.Array[] による ArraySegment.ToArray() の呼び出しが無くなった結果、 GC Alloc が減少する。
This commit is contained in:
parent
71b6b2a41b
commit
3d8db458cd
|
|
@ -69,8 +69,9 @@ namespace UniGLTF
|
|||
public NativeArray<T> CreateNativeArray<T>(ArraySegment<T> data) where T : struct
|
||||
{
|
||||
var array = CreateNativeArray<T>(data.Count);
|
||||
for (int i = 0; i < data.Count; i++)
|
||||
array[i] = data.Array[data.Offset + i];
|
||||
var toSpan = array.AsSpan();
|
||||
var fromSpan = data.AsSpan();
|
||||
fromSpan.CopyTo(toSpan);
|
||||
return array;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user