传统日志代理为每个日志条目创建和销毁 PipelineEvent 对象,导致频繁的内存分配和释放,这种方法造成约10%的 CPU 开销和大量内存碎片。简单的全局对象池会在多线程下产生锁竞争,thread-local 池则难以覆盖跨线程交付场景。LoongCollector 用线程感知的事件池策略解决这个问题:同线程场景下使用 Lock-free Pool 直接复用,无需加锁;跨线程场景下使用双缓冲 Pool 加批量回收机制,Input Runner 维护自己的事件池用于分配,Processor Runner 维护自己的事件池用于释放并支持按 PipelineEventGroup 批量归还,仅在 Input 池空时才触发批量转移。这种设计使对象创建减少约90%,内存碎片减少约80%,批量释放将访问频率显著降低90%,把同步成本压到最低。




