Я столкнулся с проблемой утечки памяти при использовании библиотеки czmq для простого приложения PUB / SUB
. Итак, вот описание:
Установка содержит несколько издателей и несколько подписчиков. Каждый издатель и подписчик — это отдельный поток. Потоки — это обычные потоки POSIX на компьютере с Linux. Я отправляю сообщения от издателя к подписчику, используя zmsg_send
и zframe
. Каждое сообщение, содержащее по одному кадру. Я могу отправлять и получать сообщения, но со временем я вижу, что память, занимаемая приложением, увеличивается. Я использую сокеты tcp pub-sub.
Одна вещь, которую я хотел бы упомянуть, это то, что после отправки сообщения я не уничтожаю его, поскольку в документации упоминается, что оно уничтожит их после успешной отправки. При получении сообщения я копирую полученное сообщение в локальную структуру, а затем уничтожаю фрейм и zmsg. Я использую zpoller для ожидания сообщений в сокете. Он работает на процессоре руки. Может ли кто-нибудь указать мне, какие вещи мне нужно иметь в виду, чтобы избежать утечки памяти? Приложение отправляет сообщения с частотой 10 Гц.
И ключ к общим ошибкам, которые я мог бы сделать, будет полезен. Спасибо.