Tag: v8

适用于v8 / Node.js的XSLT库

我发现有一些XML库可用于v8 / Node.js: http : //github.com/ry/node/wiki/modules#parsers-xml 然而,深入到这些模块之后,似乎他们只提供对parsingXML文档的支持,并使用DOM来操纵它们。 我想知道是否有人知道Node.js或V8的XSLT库。

在Node.js和v8中调用一个使用包装对象作为参数的函数

我想在node.js中做如下的事情… var a = new A(); var b = new B(); // onTick应该是一个以B的实例作为参数的函数 a.onTick = function(bInst){….} 一个循环(); 这意味着A有一个属性“onTick”,这是一个在循环内被调用的函数。 请注意,A和B被定义为C ++封装函数,这里是定义 void AClass::Init(Handle<Object> target) { Local<FunctionTemplate> tpl = FunctionTemplate::New(New); tpl->SetClassName(String::NewSymbol("A")); tpl->InstanceTemplate()->SetInternalFieldCount(1); tpl->PrototypeTemplate()->Set(String::NewSymbol("tick"), FunctionTemplate::New(Tick)->GetFunction()); tpl->PrototypeTemplate()->Set(String::NewSymbol("loop"), FunctionTemplate::New(Loop)->GetFunction()); constructor = Persistent<Function>::New(tpl->GetFunction()); constructor->InstanceTemplate()->SetAccessor(String::New("onTick"), GetOnTick, SetOnTick); target->Set(String::NewSymbol("A"), constructor); } Handle<Value> AClass::New(const v8::Arguments &args) { HandleScope scope; AClass* acls = new AClass(); […]

带有Socket.IO 1.0的NodeJS – 堆外的内存泄漏

我们一直在试图使用Socket.IO来部署一个小型的NodeJS应用程序,并且遇到了一个问题,那就是虽然应用程序的堆大小仍然可以接受,但是使用的总内存(rss)在大约2小时之后就会升至2GB以上,并继续上涨。 为了确保问题不在我们的代码中,我们除了初始化Socket IO之外,还部署了一个没有自定义逻辑的裸骨应用程序。 我们在相同的生产stream量下运行,并遇到同样的问题。 每10秒我们输出以下数据:rss内存使用情况,堆总数,堆数和连接数。 以下是一个输出示例: 523898880 199490816 123040352 2001 537059328 209774080 163828336 2011 538578944 206714368 150879848 2031 535252992 199514880 156743280 2041 542162944 200522752 145077944 2039 539652096 195387136 129486792 2055 551006208 206726400 170918304 2070 553254912 205706496 156447496 2071 550584320 198482944 154005496 2076 564363264 209810176 140442920 2095 561176576 201578752 123214232 2118 562487296 200546816 110638376 2112 572096512 […]

为什么node.js不释放内存?

我想了解如何在node.js上工作GC。 看来比v8引擎不释放内存。 我做了一个非常简单的脚本实现一个HTTP服务器,我保存每3秒的stream内存使用量。 var http = require('http'), fs = require('fs'), heapdump = require('heapdump'), memwatch = require('memwatch'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8888); console.log('Server running on port 8888.'); memwatch.on('leak', function(info) { // look at info to find out about what might be leaking console.log('============= MEMWATCH ON LEAK ============\n',info) }); memwatch.on('stats', function(stats) { […]

NodeJS:调用global.gc()不会将内存降到最低?

为了研究内存泄漏,我设置了一个在每个POST /gc触发global.gc()的路由 app.post('/gc', function(req, res){ global.gc(); }); 但是,我注意到,如果我发送这个请求,每次都会越来越减less内存使用量。 不应该调用global.gc() 一次就足以把内存global.gc() 最小 ? 如果是这样,为什么每次调用连续多次调用会减less内存 ? (我正在使用Node.js v0.12)

缺less符号的问题 – 不推荐使用NewInstance。 只有当与nw.js一起运行

在我的项目中,我使用libvirt库。 这些是libvirt api的节点绑定。 由于这个问题可以涉及其他绑定的情况下,我发布我的问题在这里。 安装npm安装后,会抛出警告(下面​​的例子) ../src/domain.cc: In static member function 'static v8::Local<v8::Object> NLV::Domain::NewInstance(virDomainPtr)': ../src/domain.cc:197:44: warning: 'v8::Local<v8::Object> v8::Function::NewInstance() const' is deprecated (declared at /home/mark/.node-gyp/6.3.1/include/node/v8.h:3243): Use maybe version [-Wdeprecated-declarations] Local<Object> object = ctor->NewInstance(); ^ 在使用普通节点应用程序后,它不会造成任何问题。 但是,当涉及到nw.js时,它正是由于这个NewInstance的使用而崩溃的。 有关证据请参阅: ….nwjs/nw: symbol lookup error: …./project/node_modules/libvirt/ build/Release/libvirt.node: undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEi Aborted (core dumped) 有问题的这个符号引用了同样的方法 – NewInstance。 有问题的代码,纯粹的forms如下所示: Domain::Domain(virDomainPtr handle) : NLVObject(handle) […]

是否有可能摧毁一个背景?

Node.JS或V8中存在内存泄漏,这使我无法重新使用进程来对许多HTML页面进行jquery化。 错误在这里: https : //github.com/joyent/node/issues/1007 同时Bug,当我完成它时,是否有可能“摧毁”上下文? 这样的接缝可能会导致jsdom代码的简单入侵,因此我可以在不写入重新启动的情况下以合乎逻辑的方式写入自己的代码。 我们有一种方法来跟踪我们公司对开源项目的调整,以便我们能够引入更新,并且仍然修复我们可能发现的错误,而无需等待开源社区。 如果我能消灭这种语境,我想我会好起来的。 在jsdom的tmpvar说这是一个Node.JS的问题,我不知道什么时候将被修复,因为看到这是几个月前,已经有很多开放的问题https://github.com/joyent/node/issues/637 。

node.js内部:如何找出'process.binding('eval')`被定义的位置?

我怎样才能find在node.js的C ++源代码中的JavaScript对象得到定义,我可以通过process.binding('eval') ? – 在这种特殊情况下,我已经发现它在/src/node_script.cc中,但是:我怎么才能知道在哪里可以find那个模块,只要看看/src/目录概览 ? 我不想浏览/src/中的所有文件以查找模块。 我在哪里可以find关于process.binding()的内部深入的信息? 谢谢。

npm -v和node.js在交叉编译的节点js0.12.2上抛出非法指令

我使用以下工具链为爱特梅尔SAMA5D36交叉编译nodejs 0.12.2 export AR=arm-linux-gnueabihf-ar export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ export LINK=arm-linux-gnueabihf-g++ 并configuration和构build如下 ./configure –without-snapshot –dest-cpu = arm –dest-os = linux –prefix = / home / root / nodejs-v0.12.2 make make DESTDIR = / home / user / Desktop / nodejs_arm / nodebins 已编译的文件夹在/ home / user / Desktop / nodejs_arm / nodebins / home / root内部生成 […]

为什么v8在这种情况下内存不足?

根据node.js文档,一个节点在32位版本上有一个512meg的限制,在64bit版本上有一个1.4gig的限制。 Chrome AFAICT的限制是相似的。 (+/- 25%) 那么,为什么这个代码在内存使用量不超过424meg的时候会耗尽内存呢? 这里是代码( 代码是无稽之谈,这个问题不是关于代码是做什么的,这是关于代码失败的原因 )。 var lookup = 'superCaliFragilisticExpialidosiousThispartdoesnotrealllymattersd'; function encode (num) { return lookup[num]; } function makeString(uint8) { var output = ''; for (var i = 0, length = uint8.length; i < length; i += 3) { var temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + […]