@dailysse

Как очистить память?

Доброго времени суток.
var y = [];

let a = setInterval(() => {
	let b = 176400*10 / 1024 / 1024 / 1024;
	y.push(Buffer.allocUnsafe(176400*10).fill('a'));
	if (y.length>=1000) {
		clearInterval(a);
		y.forEach((value, key) => {
			delete y[key];
		});
		y = [];
	}
}, 3);


Как очистить память после создания буферов?
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ответы на вопрос 2
@RidgeA
Очисткой памяти должен заниматься GC.
В приведенном примере очистка памяти происходит после `delete y[key]` (точно сказать когда это происходит нельзя - это свойство GC).

Вот тут есть обсуждение этого вопроса https://github.com/nodejs/node-v0.x-archive/issues/2995 и ссылка на модуль для очистки памяти из-под буферов, но ИМХО, если есть потребность в таком модуле, то что-то пошло не так архитектурно. Надо оптимизировать работу с памятью, или, если нет возможности, увеличить лимит выделяемой памяти (если, конечно, система позволяет).
Ответ написан
Комментировать
vitali1995
@vitali1995
Все движки JS используют сборщик мусора. Если вам критично управление памятью, можете посмотреть фреймворки на С++, такие как Tufão
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы