Я рассматривал возможность использования UnmanagedMemoryStream вместо MemoryStream для обработки входящих (и, возможно, исходящих?) Пакетов на сетевом сервере. Я надеюсь добиться меньшего копирования значений и, если возможно, избежать копирования в кучу (слишком много).
Например, для входящего пакета можно сделать:
fixed (byte* p = &data) // where data comes from a socket receive
{
using (var stream = new UnmanagedMemoryStream(p, data.Length))
{
// do handling here...
}
}
Тем не менее, я не совсем уверен, есть ли в этом какая-то реальная выгода. Может ли кто-нибудь прийти с некоторой обратной связью относительно того, будет ли в этом какая-то ценность, а не использование старого доброго управляемого MemoryStream?
Заранее спасибо.