开发者社区> 问答> 正文

MemoryEventStoreWithBuffer event size不准确

MemoryEventStoreWithBuffer private long calculateSize(Event event) { // 直接返回binlog中的事件大小 return event.getEntry().getHeader().getEventLength(); }

binlog事件经过Canal解析,实际内存占用是event_length的十倍以上,这样bufferSize * bufferMemUnit算出的实例内存占用就不准确了,是不是考虑改成event.getEntry().getSerializedSize();

测试结果:

calculateSize 179,SerializedSize 1790 calculateSize 8291, ,SerializedSize 155000

原提问者GitHub用户koshox

展开
收起
绿子直子 2023-05-09 10:37:47 51 0
1 条回答
写回答
取消 提交回答
  • 是有这么一个问题,拿的是binlog里的大小,展开之后会补充字段,类型等信息,会比之前要膨胀很多

    新的1.0.26版本已经按照序列化大小进行计算了

    原回答者GitHub用户agapple

    2023-05-10 10:01:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载