если он все время аллоцирует память?
То есть поток Б имеет доступ на стак потока А?
Он аллоцирует не то что он отдаёт, а IMemoryOwner
Так как мы не видим кода, мы не можем утверждать, что автор возвращает память в пул
Реализация есть в прикрепленном гисте.
private sealed class ArrayMemoryPoolBuffer : IMemoryOwner<T> {} А причем тут стек? Допстим поток А взял из пула объект, поместил в очередь, поток Б забрал, поработал и вернул в пул.
Тогда ответ: смысл в том, чтобы 10 клиентов брали память в аренду из одного пула, а не каждый из своего, тогда будет выигрыш
Ок, но в каком случае это необхдимо и почему его тоже не пулить? 🙂 Я бы сказал что поведение реализации NonAllocatingPool более ожидаемое.
В том случае когда нужно аллоцировать больше чем 24 байта?
Что-то я не очень понял, а где присуствует ограничение на 24 байта?
А ты в него память возвращать пробовал?
В примере вызывается Dispose, он возвращает объект из пула обратно.
Обсуждают сегодня