ネットワーク サーバーで受信 (およびおそらく送信) パケットを処理するために、MemoryStream ではなくUnmanagedMemoryStreamを使用することを検討していました。私が達成したいのは、値のコピーを減らし、可能であれば、ヒープへのコピーを避けることです (多すぎます)。
たとえば、着信パケットの場合、次のことができます。
fixed (byte* p = &data) // where data comes from a socket receive
{
using (var stream = new UnmanagedMemoryStream(p, data.Length))
{
// do handling here...
}
}
それでも、これを行うことに現実的な利点があるかどうかはよくわかりません。古き良き管理された MemoryStream を使用するのではなく、これを行うことに価値があるかどうかについて、誰かフィードバックをいただけますか?
前もって感謝します。