В прошлом я читал об управлении памятью в JavaScript и знаю о проблеме с циклическими ссылками на DOM и т. д.
Однако мне все еще немного неудобно, поскольку это переводится в среду JavaScript на стороне сервера, такую как node.js, а точнее в API, написанный на express.
var npm_moduleA = require('npmA')({ someInitArg : 'blah' }),
app = express.createServer();
app.get('/api/foo', function (req, res) {
var result = npm_moduleA.doSomething();
res.send(result);
});
app.get('/api/bar', function (req, res) {
var npm_moduleB = require('npmB')({ someInitArg : 'blah' }),
result = npm_moduleB.doSomethingElse();
res.send(result);
});
Каков жизненный цикл npm_moduleA
?Он получает создается в момент запуска сервера, но когда (если вообще GC срабатывает против него) - я предполагаю, что его никогда не трогают, потому что он находится в глобальной области?
В '/api/bar/' следует ли npm_moduleB
удалять после каждого запроса?Или это следует оставить на усмотрение сборщика мусора.
Является ли глобальная реализация npm_moduleA
значительно более эффективной, чем повторная реализация (и возможное удаление) npm_moduleB
?