Почему рекомендуется использовать только буферы кучи с операциями [byte] в ChannelOutboundHandler.?

Мы работаем над открытым исходным кодом API-шлюза и используем Netty в качестве базовой платформы.

Я наткнулся на слайды Нормана Маурера. В одном из слайдов он упомянул

Используйте буферы кучи только в том случае, если нужно работать с байтом [] в ChannelOutboundHandler! По умолчанию прямой ByteBuf будет возвращен ByteBufAllocator.buffer(...).

Принять это как правило

В чем причина этого большого пальца правила?

1 ответ

Решение

Важной частью является "если нужно оперировать байтом []". Как только при использовании кучи ByteBufs можно использовать byteBuf.array() чтобы получить доступ к основному byte[] без выполнения и дополнительной памяти копирования.

Другие вопросы по тегам