我正在处理的应用程序非常注重性能,因此需要将分配降至最低,以避免GC暂停。
我惊讶地发现,
因此,我正在寻找一种方法,将
我惊讶地发现,
System.Guid
没有公开将其byte[]
表示复制到现有缓冲区的任何方法。唯一存在的方法Guid.ToByteArray()
执行new byte[]
分配,否则没有办法获取底层字节。因此,我正在寻找一种方法,将
Guid
复制到已存在的byte[]
缓冲区中,而不分配任何内存(因为Guid
已经是值类型)。
Guid
吗?也许直接创建[DllImport("ole32.dll", SetLastError=true)] static extern int CoCreateGuid(byte[] guid);
(或者 http://www.pinvoke.net/default.aspx/rpcrt4/UuidCreateSequential.html)会更好? - Alexei Levenkov