Flink序列化慢 | Collector.colect()?
最近在做Processing Framework的性能比较,做到Flink时,测出的数据性能变得及其差。
细看之后发现瓶颈出现在 Collector.collect()
方法, 可能是序列化,对象的复制话费了大量的时间。
在我的例子中,collect(SINGLE OBJECGT)甚至要多到100ms (我这的OBJECT大概有500Bytes)
经过一番搜寻,这篇文章给了我答案
简单来说:
- 数据的存储结构尽量使用平整的方式
- 开启flink的object resue (collect()消耗瞬间减少到 < 1ms!)
另有一些参考文章: