Я создал Ruby XMPP Framework под названием babylon. Затем я создал с ним несколько приложений, и, хотя они работают довольно плавно, кажется, что они постепенно съедают память моего компьютера.
Я подозревал утечки, поэтому сначала я добавил это в какой-то момент своего кода:
puts `ps -o rss= -p #{Process.pid}`.to_i
Как и предполагалось, производительность продолжала расти ... медленно, но верно.
Я пытался искать утечки с Дайком, как объяснил здесь.
К сожалению, Дике не удалось обнаружить утечки. Даже после того, как он работал довольно долгое время, он по-прежнему возвращает те же объекты.
Итак, как я могу быть уверен, что мой фреймворк протекает, а не просто занимаю некоторую оперативную память до некоторой максимальной точки, а затем начинаю ее освобождать?
И как я могу отслеживать утечки и исправлять их?
Спасибо за вашу помощь!