Tag: v8

Zend MVC项目提高了node.js的性能

我正在与ZendServer一起使用Zend mvc项目。 现在我读了node.js,构build在V8 JavaScript引擎上,具有超快的性能来编译JavaScript代码。 有没有一种方法来使用node.js编译javascript代码到我的视图的mvc projext?,例如可能在服务器端与节点编译的JavaScript,但继续使用我的zend服务器运行PHP,而不会扭曲我的项目代码? 谢谢

一个node.js如何检查参数types

我使用node.js一段时间,现在我需要编写一个附加组件,但是我是c ++的新手。 在node.js中,我可以传递可选参数到函数,并检查它们的types。 function hello(arg, options, callback){ if(!callback){ if(typeof options === 'function'){ callback = options; options = {}; } } console.log(typeof arg); } 但在一个插件。 Handle<Value> hello(const Arguments &args) { HandleScope scope; printf("%d\n", args.Length()); // how to check type of args[i] return String::New("world"); }

如何在没有面向对象的情况下关联数值和function

我的函数init返回一个v8::Handle<Object> ,这个Object包含几个Handle<Function>属性,比如bar 。 var foo = require('foo').init({a:'a', b:'b'}); foo.bar('a'); 在我的插件代码中: Handle<Object> Bar (Arguments &args) { // !! how to access mystruct* p for current call? } Handle<Object> Init(Arguments &args) { HandleScope scope; mystruct* p = InitMyStructWithArgs(args); Object ret; // !! how to bind mystruct* p to Bar? NODE_SET_METHOD(ret, 'bar', Bar); scope.Close(ret); } 你会发现Bar,Obj,args都是独立的,它们之间没有相对的关系,所以我不能在mystruct*使用{a:'a', b:'b'} mystruct*

了解NodeJS / NodeInspector V8协议

我想要控制NodeInspector前端。 它本身就是为远程控制Node.js而devise的。 他们通过v8协议进行通信 ,我也发现了对该协议原理的一个(相当短的) 描述 。 但是,我不了解通信是如何工作的。 在启动时期望什么,什么时候抛出什么事件,从而突出显示特定的行等等。 我目前的做法是输出Node-Inspector和NodeJS之间的通信,然后尝试模仿它。 我取得进展,但是非常乏味。 另一种方法是通过NodeInspector Code(它是一个修改过的WebInspector)来工作,但我是JavaScript的新手,这可能也是非常乏味的。 所以我的问题是,如果有人知道一个全面的指南或入门点,我开始了解如何与NodeJS或NodeInspector的沟通工作?

Node.js分析:“(程序)”部分中的高使用率

组态: Node.js 0.8.15 Mac OSX 10.7.5 Webkit Devtools代理节点模块 在剖析时,我注意到configuration文件的“(程序)”部分中的利用率非常高。 “手动”分析(使用节点–prof和mac-tick-processor)在C ++部分中的___psynch_rw_unlock中显示了类似的高百分比。 程序在分析过程中的主要用途是: libxml处理 读取/写入套接字 mongodb写作 这是正常的行为,还是这是一个更深层次的问题的迹象?

Chrome致命一击

我有一个Node.js / Meteor应用程序,一直在屏幕上运行 – 大概20小时没有问题,然后没有失败(当我不在办公室),我得到臭名昭着的“Aw Snap”屏幕: 我已经检查了chrome_debug日志,下面的行表示崩溃: [3868:3656:0515/030350:致命:platform_canvas.cc(70)] SK_CRASH 然而,没有什么可以继续 – 使用谷歌search错误和变化检索很less的结果。 我能做些什么来进一步debugging?

在nodejs中,有更好的devise模式来同步调用asynchronous函数吗?

例如,我想写一个testing用例,它需要跟踪一系列调用的状态。 我可以得到这样的东西: async_fun(function () { // Do something … async_fun(function () { // Do something … async_fun(function () { // Do something … // … }); }); }); async_fun(); 当我需要运行一个大的循环时,我可以做如下的尾recursion : function helper (mount) { async_fun(function (){ if (mount) return; // Do something … helper(mount–); }); } helper(10000); 但是,我听说V8引擎没有对尾部调用进行优化,所以可能会吃掉内存。 有没有更好的devise模式来完成这项任务? PS:请没有第三个lib。 我想要一个本地解决scheme。

返回或不callback,这是否有所作为节点

我只是想知道是否有所作为返回callback或不。 它已经在SO上被问到了,但是在Node中没有任何IO函数使用CPS。 我没有把这个问题标记为Javascript,因为我相信这个问题与语言无关,但更具体到nodejs和v8如何在内部工作。 那么这两个版本的foo函数之间有什么区别(对于V8)呢? // foo that returns cb(); function foo(cb) { fs.read(fd, buffer, 0, 10, 10, function(err, bytesRead, buffer) { return cb(buffer); }); } // foo that won't return cb() function foo(cb) { fs.read(fd, buffer, 0, 10, 10, function(err, bytesRead, buffer) { cb(buffer); }); }

V8引擎中的Function :: Call的第一个参数是什么意思?

在node-addon-example中, 3_callbacks/addon.cc第11行3_callbacks/addon.cc如下: cb->Call(Context::GetCurrent()->Global(), argc, argv); V8的文档显示: V8EXPORT Local<Value> v8::Function::Call(Handle<Object> recv, int argc, Handle<Value> argv[] ); 所以Context::GetCurrent()->Global()被用作Handle<Object> recv 。 但是recv代表什么呢? 这是什么意思? 为什么在这种情况下使用Context::GetCurrent()->Global()是合适的?

xcode解决scheme的node-gyp链接问题

我正在使用下面的代码为MacOS下的xcode生成node-gyp的解决scheme: node-gyp configure — -f xcode 所以为了这么好,解决scheme得到了正确的生成,但它似乎没有正确链接在xcode中构build时,它抱怨v8未定义的符号。 我正在使用节点0.10.28。 Undefined symbols for architecture x86_64: "v8::HandleScope::RawClose(v8::internal::Object**)", referenced from: v8::Local<v8::String> v8::HandleScope::Close<v8::String>(v8::Handle<v8::String>) in binding.o "v8::HandleScope::HandleScope()", referenced from: Method(v8::Arguments const&) in binding.o "v8::HandleScope::~HandleScope()", referenced from: Method(v8::Arguments const&) in binding.o "v8::FunctionTemplate::GetFunction()", referenced from: void node::SetMethod<v8::Handle<v8::Object> >(v8::Handle<v8::Object>, char const*, v8::Handle<v8::Value> (*)(v8::Arguments const&)) in binding.o "v8::FunctionTemplate::New(v8::Handle<v8::Value> (*)(v8::Arguments const&), v8::Handle<v8::Value>, v8::Handle<v8::Signature>)", referenced from: void […]