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
是有这么一个问题,拿的是binlog里的大小,展开之后会补充字段,类型等信息,会比之前要膨胀很多
新的1.0.26版本已经按照序列化大小进行计算了
原回答者GitHub用户agapple
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。