Tag: v8

如何在iojs中获取模板string的原始版本

是否有可能在iojs中获得模板string的原始版本? var s = `foo${1+1}bar` console.log(s); // foo2bar 在前面的例子中,我想获得string: foo${1+1}bar 编辑1 :我的需要是检测一个模板string是否依赖于它的上下文如果是只是一个“常量”string,可能包含CR和LF

v8 c ++ – 如何获取作为参数提供的对象键值

我将js对象传递给我的函数 myFunc.do({'1':2}); 我想std::cout从我的对象在c + +中的键值对 这是我的 Handle<Object> object = Handle<Object>::Cast(args[i]); Local<Array> objArray = object->GetPropertyNames(); for(uint o=0; o < objArray->Length(); o++) { Local<Value> val = objArray->Get(o); v8::String::Utf8Value str(val->ToString()); std::string foo = std::string(*str); std::cout << "val is= " << foo; } return; 我做错了object->GetPropertyNames(); ,因为它没有得到我传递的值 更新这里是另一个无用的尝试 Local<Context> context = isolate->GetCurrentContext(); Local<Object> object = Local<Object>::Cast(args[i]); Local<Array> props; if (!object->GetOwnPropertyNames(context).ToLocal(&props)) […]

给整数一个默认值,如果它们被初始化为空

我有这个(这是一个Node.js插件) void Method(const v8::FunctionCallbackInfo<v8::Value>& args) { int count = args[2]->ToNumber()->NumberValue(); int priority = args[3]->ToNumber()->NumberValue(); int priority_search_cap = args[4]->ToNumber()->NumberValue(); cout << " count => " << count << endl; cout << " priority => " << priority << endl; cout << " priority_search_cap => " << priority_search_cap << endl; } 我注销的是: count => -2147483648 priority => […]

在string上调用toString

在我的Node.js应用程序,我有一个数据库层调用toStringinput参数,需要作为string(例如,数字)传递给数据库。 我将parameter passing给库的地方,我也应该在那里调用toString? 一方面,我喜欢明确。 另一方面,我正在调用toString来处理已经是string的东西。 如果这是不必要的,我宁愿保存CPU周期。 在string上调用toString代价是多less?

如何能够从Node.js应用程序谈论基于function的V8debuggingAPI?

我有一个相当特殊的debugging问题,因为我的Node应用程序本身就是一个Nodedebugging器(应用程序的一部分将提供debugging接口来debugging另一个部分)。 我熟悉V8debugging协议: https://code.google.com/p/v8/wiki/DebuggerProtocol 以及使用它的各种工具(包括Node,node-inspector等内部debugging器)。 如果我必须通过networking连接与API进行交stream,所有现有工具似乎都可以这样做,但我宁可不要因为几个原因。 我已经在进程中,想要避免在所有情况下打开debugging端口和networking开销(这是我的生产环境的一部分),我想从debuggingAPI获取Javascript对象,而不是通过JSON API获得的JSON-ified版本(缺less一些保真度)。 V8debugging器文档说: “这里有两个API:基于函数的使用JavaScript对象的API和使用基于JSON的协议的基于消息的API。基于函数的API可以被进程内debugging器代理使用,而消息基于API的API也可以在stream程外使用。“ 使用JavaScript对象的基于函数的API听起来就像我所需要的,但是在V8文档中我没有看到关于这个API或者如何使用它的其他信息。 我也看不到如何从Node.js访问这个API(或一般的V8)。 那么这是可能的,如果是这样,怎么样?

新date(unix)返回不一致的时区

我在JavaScript的Date构造函数中发现了奇怪的行为。 它在不同的时区下为不同的毫秒值创build时间。 我在纽约,所以我希望他们都出来作为EST ,但有些出来作为EDT 。 // EST as I expect: new Date(1446613200000) Wed Nov 04 2015 00:00:00 GMT-0500 (EST) new Date(1446440400000) Mon Nov 02 2015 00:00:00 GMT-0500 (EST) // EDT for some reason: new Date(1446354000000) Sun Nov 01 2015 01:00:00 GMT-0400 (EDT) new Date(1446181200000) Fri Oct 30 2015 01:00:00 GMT-0400 (EDT) 我可以在Chrome和nodejs中重现这一点,但不能在Firefox中重现。 我想这与V8有关? 任何人都有这个解释? 由于JS影响getHours的输出,所以JS没有提供任何改变Date对象的时区的function。

多个无限循环

当给出这段代码时: while(true){ … } 这可以asynchronous执行多less次? 我已经写了这个testing,以及它如何与Google的JavaScript V8引擎交互,并且一次只有一个while循环处于活动状态。 var cycles = 0; var counter = new Date(); var OpsStore = []; var threads = []; for(var i = 0; i < 10; i++){ setTimeout(newThread(i),0); } function renew(){ if (secondPassed(counter, new Date())){ counter = new Date(); Ops(); } cycles++; } function newThread(id){ threads.push({id: id, active: true}); return […]

在Node js中使用'require'来获得更好的性能

我在我的控制器中使用了很多依赖项。 这是一个很好的build议,使用下面的东西略微提高性能:(即延迟加载控制器) app.use(route.get('/test', function(){ c = require('./testcontroller') c.method(); }) ); app.use(route.get('/test2', function(){ c2 = require('./testcontroller2') c2.method(); }) ); 而不是常见的方法: c = require('./testcontroller') c2 = require('./testcontroller2') //all other controllers app.use(route.get('/test', c.method) app.use(route.get('/test2', c2.method)

什么时候在Node.js V8中分配和编译closures?

根据我目前关于虚拟机及其行为的假设,我每次打出定义时都会分配和编译闭包。 与在封闭之外声明的函数相比,它们被分配和编译一次(因为它们被放置在某个地方,它们的定义只被命中一次)。 这个假设是否正确? 所以,如果我在socket.on('data', function (data) {…})有一个闭包,V8会在每次 socket收到数据时分配新的内存(并可能重新编译)闭包。

重写PHP / Smarty网站到Node.js

我决定和Node.js一起玩,因为我喜欢Javascript作为一种语言,因为V8是如此之快。 我与移动网站工作,所以如果我设法减less页面响应时间将是非常好的。 我有一个相对简单的网站build立与PHP和聪明,作为一个练习,我想将其移植到节点,看看它是如何performance。 我的主要问题是以下几点 – 现有的模板引擎中哪一个与smarty最为相似,因此这部分项目的移植工作要尽量less。 此外,我使用PHP库结合内容图像成精灵 – 任何image processing工具的V8,可以读/写PNG和JPEG文件?