Второй абзац содержит результаты профилировщика.

сь докопаться до OutOfMemoryException, я обнаружил, что .net'sBufferManagers, используемые буферизованным TransferMode в WCF, были потрачены буквально на сотни мегабайт (см. вопрос и мой собственный ответ наКак я могу предотвратить потерю памяти BufferManager / PooledBufferManager в моем клиентском приложении WCF? для деталей и того, как я мог это исправить, просто переключившись с «буферизованного» на «потоковый»).

Оставляя в стороне WCF, BufferManager был изобретен как более эффективная альтернатива тому, что вы обычно делаете: просто выделяя байтовые массивы, когда они вам нужны, и полагаясь на GC, чтобы очистить их и утилизировать, как только ссылка выходит из области видимости.

Итак, мой вопрос: кто-нибудь использовал BufferManager в реальных приложениях, чтобы он имел заметное различие в производительности, чтобы оправдать неудобство необходимости вручную .Clear () BufferManager (если это было необходимо)?

И если да, то может ли просто создание однобайтового буфера вручную и сохранение ссылки на него не решить эту конкретную проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос