Сборка мусора объектов с использованием экспресс - PullRequest
1 голос
/ 13 апреля 2019

Мне интересно, нужно ли мне удалять ссылки на объекты, созданные в маршруте в экспрессе, или о том, что о нем позаботятся.

Предположим, следующая простая ситуация:

class Person
{
    constructor(name, age)
    {
        this.name = name;
        this.age = age;
    }
}

app.get('/', function (req, res) {
    const person = new Person(req.params.name, req.params.age);
    res.send('Persons name is ' + person.name);
})

После 100 вызовов по этому маршруту вокруг объекта будут перемещаться 100 человек или это будет очищено с помощью узла сборки мусора?

1 Ответ

1 голос
/ 13 апреля 2019

Объект имеет право на сборку мусора, если его ссылка перестает использоваться.

Поскольку ссылка person нигде не передается, переменная перестает существовать в конце функции обработчика маршрута, используемая ею память будет освобождена при следующей сборке мусора.

Если запросы выполняются часто, возможно, что память будет занята кучей Person экземпляров, пока они не будут собраны в мусор.

...