Утечка памяти NodeJS с буферами - PullRequest
0 голосов
/ 09 мая 2018

У меня работает сервер NodeJS, и потребление памяти с каждым днем ​​увеличивается.

Я искал в Интернете, чтобы выяснить, откуда возникла проблема, поэтому я использовал модуль node-heapdump для анализа памяти.

Размер файла при запуске сервера был почти таким же, как тот, который я взял через несколько дней, в то время как PM2 сообщает мне о явном увеличении используемой памяти.

Впоследствии я знал, что буферы хранятся вне кучи V8: «Буфер похож на массив целых чисел, но соответствует необработанному выделению памяти вне кучи V8», поэтому я предполагаю, что проблема утечки памяти связана с тем, что Я использую много буфера, и это так.

Проблема в том, что я точно знаю, в каком файле проблема, но я не знаю, как ее решить.

Вот код файла https://hastebin.com/apicituleb.js

Это пример результата функции "creatImage" image

Модуль "ressourcesManager" содержит все ресурсы, которые мне нужны в моем приложении, поэтому много буфера, но я не думаю, что проблема возникает из-за того, что я загружаю их один раз при запуске. Код модуля "ressourcesManager" довольно грубый, но вот код, если вы хотите взглянуть https://hastebin.com/neyanuhema.php

Прошло много времени, так как у меня есть эта проблема, которую я не могу решить, поэтому, если люди захотят потратить немного времени, чтобы помочь мне, я буду очень благодарен.

PS: если вам нужны файлы снимков кучи, то они:

Начало: https://drive.google.com/open?id=1LDwk8y3cygGDrSr1z8xV__PboWiEtQHt

Конец: https://drive.google.com/open?id=1s4WXgia2CM4rb3fd6wCdVxOLgiS9Oahz

1 Ответ

0 голосов
/ 08 июня 2018

Может быть, модуль node-oom-heapdump может помочь? Он предлагает те же функциональные возможности, что и node-heapdump, но он также автоматически создает heapdump, когда происходит нехватка памяти (что является наиболее интересным моментом для создания heapdump). Может быть, эта куча может дать больше понимания?

...