Articles of v8

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) + […]

find未被V8优化的相应JS源代码

我尝试优化node.js应用程序的性能,因此我正在分析V8的JIT编译器的行为。 当通过node –trace_deopt –trace_opt –code_comments –print_optcode …运行应用程序时,输出包含许多重复的行,如下所示: [didn't find optimized code in optimized code map for 0x490a8b4aa69 <SharedFunctionInfo>] 我怎样才能找出哪个JavaScript代码对应于0x490a8b4aa69 ? 完整的输出在这里可用。

基准testingnode.js

我想在使用node.js方面做不同的电路板和架构(arm / ia32)之间的比较。 任何人都可以指向我一个相关的基准testing,使用node.js,如果有的话? 我不是在寻找一般的JavaScript基准testing,而是与node.js相关和具体的东西。 谢谢。

embedded式节点/ JavaScript的沙箱?

我正在编写一个Node应用程序,允许用户执行任意的JavaScript代码 – 一种超越常规用户界面的“内部API”/业务stream程。 我正在寻找一个沙箱环​​境,提供以下内容: 单独执行而不产生一个全新的线程 – 这将由成千上万的用户运行,我宁愿坚持匿名函数,无法访问父调用堆栈…或…在线程的事件.. 。跨多个服务器产卵的能力。 语法检查抛出parsing/执行错误exception与崩溃整个应用程序。 禁用函数/ var访问的function。 我试图阻止访问节点的I / O …所以用户不能把它变成一个DoS脚本或读取/ etc / passwd,但可以运行任何本地语法和预先批准的function列表。 超时控制…所以执行上限可以适用于while(true) do_intensive_stuff(); 等等 任何明显的select都在想

如何将对象传递给V8中的JavaScriptcallback

我正在做一个Node模块,并试图传递一个将ObjectWrap作为参数的子类的实例传递给JavaScriptcallback。 在其他地方,我已经能够成功地展开JavaScript对象到同一个类,使用: GitCommit *commit = ObjectWrap::Unwrap<GitCommit>(args[0]->ToObject()); 我该怎么做呢? 我想将一个GitCommit实例GitCommit给一个JavaScriptcallback,如: Local<Value> argv[] = { // Error code Local<Value>::New(Integer::New(0)), // The commit commit // Instance of GitCommit : ObjectWrap }; // Both error code and the commit are passed, JS equiv: callback(error, commit) ar->callback->Call(Context::GetCurrent()->Global(), 1, argv); 这可能吗? 如果有的话,请给我一个例子,或链接到相关文件?

NodeJS .forEach未定义

我在[].forEach中使用了[].forEach 。 (使用NodeJs v5.4.1) 让这个代码在一个函数中 function _buildUserQuestionsForDisplay(question,callback){ var res = {} ["is_open","created","deleted","_id"].forEach(function(v){ res[v] = question[v] }) … … } 抛出一个错误: [ “IS_OPEN”, “创build”, “删除”, “_ ID”]。的forEach(函数(V){ TypeError:无法读取属性'forEach'的undefined 它工作,如果我改变代码 var arr = ["is_open","created","deleted","_id"]; arr.forEach(function(v){ res[v] = question[v] }) 我已经在Chrome.console上testing了相同的function,第一种方法Chrome.console 。 我知道这两个使用V8 JS引擎,这是一个错误,或者我失踪的Javascript规则? 谢谢!

nodejs分析; 什么是'未知'

在分析nodejs程序时,我发现61%的tick是由“Unknown”引起的(见下文)。 这可能是什么? 我该找什么? GR, 科恩 Statistical profiling result from node, (14907 ticks, 9132 unaccounted, 0 excluded). [Unknown]: ticks total nonlib name 9132 61.3% [Shared libraries]: ticks total nonlib name 1067 7.2% 0.0% C:\Windows\SYSTEM32\ntdll.dll 55 0.4% 0.0% C:\Windows\system32\kernel32.dll [JavaScript]: ticks total nonlib name 1381 9.3% 10.0% LazyCompile: *RowDataPacket.parse D:\MI\packet.js:9 ……

从node-webkit访问USB设备?

我正在构build一个需要在所有3个主要桌面环境(windows,mac和linux)上运行的node-webkit应用程序,我需要我的应用程序连接到一个插入的USB设备,而且我正在处理一些问题如何去做这件事。 是否有一个npm可以在所有操作系统上运行? 我可以得到一个build立在C + +的工作吗? 有没有什么内置的node-webkit与设备交互(设备API?) 提前致谢。