Почему рекомендуется использовать только буферы кучи с операциями [byte] в ChannelOutboundHandler.?
Мы работаем над открытым исходным кодом API-шлюза и используем Netty в качестве базовой платформы.
Я наткнулся на слайды Нормана Маурера. В одном из слайдов он упомянул
Используйте буферы кучи только в том случае, если нужно работать с байтом [] в ChannelOutboundHandler! По умолчанию прямой ByteBuf будет возвращен ByteBufAllocator.buffer(...).
Принять это как правило
В чем причина этого большого пальца правила?
1 ответ
Решение
Важной частью является "если нужно оперировать байтом []". Как только при использовании кучи ByteBuf
s можно использовать byteBuf.array()
чтобы получить доступ к основному byte[]
без выполнения и дополнительной памяти копирования.