Closed FULaBUla closed 2 months ago
目前方法是这样的: MResult<T> pack(int nextReadIndex, byte[] fullBytes, String[] attachParams, Class clz, Object fieldObj, Object rootObj);,感觉头两个参数或者是整个框架是不是可以直接将 int nextReadIndex, byte[] fullBytes, 合并成 ByteBuffer?这样读取数据的时候就不需要用 Arrays.copyOfRange 去截取了,直接通过 Buffer 读,会不会开销更小,速度更快,同时自定义序反序列化的时候编码更方便?
MResult<T> pack(int nextReadIndex, byte[] fullBytes, String[] attachParams, Class clz, Object fieldObj, Object rootObj);
int nextReadIndex, byte[] fullBytes,
ByteBuffer
Arrays.copyOfRange
Buffer
之前也考虑过直接把buffer透传,但是一般开发者对buffer了解的比较浅。如果数据修改错误的情况下容易造成脏数据进而影响到框架本身的序列化流程。所以这里使用了byte[]做了一个隔离
byte[]
这部分性能开销对于开发者理解及程序安全性来说是值得的
目前方法是这样的:
MResult<T> pack(int nextReadIndex, byte[] fullBytes, String[] attachParams, Class clz, Object fieldObj, Object rootObj);
,感觉头两个参数或者是整个框架是不是可以直接将int nextReadIndex, byte[] fullBytes,
合并成ByteBuffer
?这样读取数据的时候就不需要用Arrays.copyOfRange
去截取了,直接通过Buffer
读,会不会开销更小,速度更快,同时自定义序反序列化的时候编码更方便?