Node.JS - Почему буфер не собирает мусор в цикле? - PullRequest
0 голосов
/ 06 ноября 2019

Минимальный тестовый код в Windows 7 и узле 10.8.0:

for (let i = 0; ; ++i) {
    let buf = new Buffer("1111111111111111111");
    buf = null;
    if (i % 10000 === 0) {
        global.gc();
        console.log(process.memoryUsage().rss);
    }
}

, а затем запуск с

 node --expose-gc .\index.js

Я вижу, что rss продолжает увеличиваться, а память выделяется набуфер не освобождается. Если я просто выделю буфер с размером, например

let buf = new Buffer(10000);

GC будет работать. Почему gc не работает в тестовом коде?

Дополнительный вопрос: кажется, что проблема не существует в версии Node Mac OS, возможно, это ошибка в версии Windows?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...