我必须将非常长的JSON文本解析为JSON对象。我试着用下面的代码来测量执行时间。
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
发布于 2014-02-13 13:04:48
有没有办法解析文本并在另一个线程中创建V8对象,然后将新创建的V8对象复制到主线程中?
这样做是没有好办法的。
如果您想使用所有内核,最好使用node.js模块生成多个cluster进程,并让每个进程处理不同的请求。
https://stackoverflow.com/questions/21751439
复制相似问题