PooledByteBufAllocator#newDirectBuffer方法的疑惑

来源:7-6 PooledByteBufAllocator概述

左耳听风1527165

2020-01-12

在PooledByteBufAllocator#newDirectBuffer方法中,else分支中创建出来的对象,最后在调用_getBytes方法的时候,他们本质都是调用unsafe.getByte,我看不出他们有什么区别,或者是性能上的区别,因为不管是直接DirectByteBuffer调用get也好还是PlatformDependent.getByte也是,最后都是归于unsafe.getByte的调用

写回答

1回答

闪电侠

2020-01-15

可以关注一下他们的  setByteBuffer(ByteBuffer buffer) 方法,unsafe 只直接保存内存地址,后续直接在这个内存地址上进行数据读写,而非 unsafe 保存的是 jdk 的 ByteBuffer 对象,后续数据读写是基于 ByteBuffer 对象

0
0

Java读源码之Netty深入剖析

解析netty各大组件细节,百万级性能调优,设计模式实际运用

2334 学习 · 283 问题

查看课程