MisterChangRay / magic-byte

a java tool for faster convertor byte2object
BSD 3-Clause "New" or "Revised" License
49 stars 20 forks source link

MConverter 的 pack 方法的优化建议 #66

Closed FULaBUla closed 2 months ago

FULaBUla commented 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 读,会不会开销更小,速度更快,同时自定义序反序列化的时候编码更方便?

MisterChangRay commented 2 months ago

之前也考虑过直接把buffer透传,但是一般开发者对buffer了解的比较浅。如果数据修改错误的情况下容易造成脏数据进而影响到框架本身的序列化流程。所以这里使用了byte[]做了一个隔离

MisterChangRay commented 2 months ago

这部分性能开销对于开发者理解及程序安全性来说是值得的