2011-05-03 82 views
5

有一个在node.js中或V8内存泄漏,消除我的重新使用过程中jqueryify许多HTML页面的能力。是否有可能破坏上下文?

的错误是在这里:https://github.com/joyent/node/issues/1007

Bug的同时,是否有可能“破坏”一个情境时,我用它做什么?这种接缝可能会导致对jsdom代码的简单攻击,因此我可以在不写入重新启动的情况下以合理的方式移动写入自己的代码。

我们有一个方法来跟踪我们公司自身的调整,以开源项目,所以我们可以在更新带来的,仍然解决我们可能已经无需等待开源社区发现的错误。

如果我可以摧毁的背景下,我想我会好到哪里去。

在jsdom的tmpvar说这是一个Node.JS问题,我不知道什么时候它会被修复,因为看到这是几个月前,并且已经有很多未解决的问题https://github.com/joyent/node/issues/637

+0

嗨乔治,什么林现在做为了解决内存泄漏,是我创建一个子进程为每个JSDOM例如,它的一个巨大的技巧,但它的工作。你可以做的另一件事是让父进程监视孩子的进程内存,当它达到一定的限制时,让它重新启动它。 – 2011-05-09 17:15:01

+0

@Amjad:谢谢,我已经做了类似的事情,我限制可以在进程重新启动之前进行解析的页数。 – 2011-05-09 17:25:55

回答

1

我能想到的最好的办法是看使用node 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));