在将czmq库用于简单的PUB / SUB应用程序时,我遇到了内存泄漏问题。所以,这里是描述:
该设置包含多个发布者和多个订阅者。每个……
你需要进一步深入研究泄漏内存的问题。
运行您的应用程序 valgrind 一旦你认为记忆被泄露,就打破执行 valgrind 应报告所有可能的泄漏。希望真正的泄漏应该突出,因为它将是大而明显的。
valgrind
其他尝试的方法是减少 的 HWM 强> 对于所有插座都是1,看看是否有所作为。可能是内存泄漏只是使用缓冲区的ZeroMQ(设置为 HWM )。如果释放除非在其他地方需要,Linux将不会总是将内存返回到堆中。
HWM
最后,感谢ZeroMQ的架构,您可以非常轻松地将您的应用程序分成两部分,然后是您的 PUB 和 SUB 将是分开的,并进一步缩小泄漏范围。
PUB
SUB