首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在另一个线程中创建V8对象,然后将其复制回nodejs范围?

如何在另一个线程中创建V8对象,然后将其复制回nodejs范围?
EN

Stack Overflow用户
提问于 2014-02-13 10:25:31
回答 1查看 292关注 0票数 4

我必须将非常长的JSON文本解析为JSON对象。我试着用下面的代码来测量执行时间。

代码语言:javascript
复制
var t = process.hrtime()
JSON.parse(jsonStr);
t = process.hrtime(t);

它大约需要0.5毫秒,这是相当多。因为nodejs的V8引擎是单线程的,如果这个操作如此繁重和频繁,吞吐量将受到很大的影响。

因此,我计划用C编写一个异步JSON.parse作为NodeJS本机插件,使用uv_queue_work让繁重的操作发生在另一个线程中,使用多核,避免占用nodejs主循环。

问题是,不允许从主线程以外的其他线程访问nodeJS中的nodeJS对象。

有没有办法解析文本并在另一个线程中创建V8对象,然后将新创建的V8对象复制到主线程中?

Br

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-13 13:04:48

有没有办法解析文本并在另一个线程中创建V8对象,然后将新创建的V8对象复制到主线程中?

这样做是没有好办法的。

如果您想使用所有内核,最好使用node.js模块生成多个cluster进程,并让每个进程处理不同的请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21751439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档