Можно ли разрушить контекст? - PullRequest
5 голосов
/ 04 мая 2011

В Node.JS или в V8 произошла утечка памяти, которая лишает меня возможности повторно использовать процесс для jqueryify многих HTML-страниц.

Ошибка здесь: https://github.com/joyent/node/issues/1007

Ошибка между тем, возможно ли «уничтожить» контекст, когда я закончу с ним?Такое впечатление, что это может привести к простому взлому кода jsdom, поэтому я могу перейти к написанию собственного кода в логической форме без перезапуска.

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

Если я смогу уничтожить контекст, я думаю, что все будет хорошо.

tmpvar из jsdom говорит, что это проблема Node.JS, и я не знаю, когда она будет исправлена, потому что, как видите, уже несколько месяцев и уже много открытых проблем https://github.com/joyent/node/issues/637.

1 Ответ

1 голос
/ 03 июня 2012

Лучший способ, который я могу придумать, - это посмотреть на использование узла VM .

vm.runInNewContext может быть полезен, когда вы получаете доступ к возвращаемому контексту, как вам угодно.

var util = require('util'),
    vm = require('vm'),
    sandbox = {
      animal: 'cat',
      count: 2
    };

vm.runInNewContext('count += 1; name = "kitty"', sandbox, 'myfile.vm');
console.log(util.inspect(sandbox));
...