Javascript引擎(或其他可嵌入语言),用于类似mongodb的查询执行环境和多线程
Javascript engine (or other embeddable language) for mongodb-like query execution environment and multithreading
我需要一些嵌入式语言的任务类似于mongodb的查询执行。语言应该是快速的,它应该有JIT和解释器(对于JIT编译的频繁脚本和一次性运行的脚本),应该有内存运行时,我用特定的API函数(或类,无论什么)手工填充(没有"内置"像gettime,线程生成或类似),它应该有C API,它应该在ARM上工作(MIPS也会很好),不是太大的足迹也会很好(但这不是关键)。
我有两个候选人:
- 谷歌V8。
- Spidermonkey(有IonMonkey的ARM支持AFAIK宣布)。
我以前没有经历过将语言嵌入C项目,所以我有几个问题:最近有传言说V8不是线程安全的,这个问题仍然存在吗?如果是这样,缺乏线程安全会在哪里引起问题?
我也会很高兴,如果有人建议嵌入式语言更适合我的要求(除了lua,我找不到任何优势与js相比,除了更小的足迹关于什么我不关心)。
我不确定SpiderMonkey的多线程可嵌入性与V8相比如何,但我知道它可以与SpiderMonkey做-我们在dev.tech.js-engine上有一些多编程嵌入器,您可能想要发布后续问题。
我们在浏览器中的web worker实现使用每个worker一个运行时实例(你可以在一个进程中多个实例化运行时)——在过去的几年里,我们已经放弃了多线程安全的单运行时方法,因为它对web来说是不必要的,并且给引擎增加了大量的复杂性。
多道程序设计的另一种选择也是异步的、基于选择的、运行到完成的方法,即一个节点。
我不认为解释器真的是你的需求——你的需求是一次性代码的快速启动时间。SpiderMonkey有一个解释器,而V8没有,但V8有一个快速代码发射(我们倾向于称之为"基线")JIT编译器,在这方面提供了相当的性能。一般来说,这种能力对web上的JS来说是一个重要的要求。: -)相关文章:
- 需要呈现MongoDB查询返回结果的特定索引/位置
- 将一个小型javascript表达式转换为mongodb查询
- MEAN.js MongoDB查询中用户特定计算的属性
- 如何通过node.js嵌套mongodb查询
- Meteor - 将 mongodb 查询分配给变量并将其插入到另一个集合
- MongoDB查询结果作为循环控制器
- MongoDB 查询的可选参数
- 为什么$elemMatch MongoDB查询在具有扩展RexExp EJSON类型的客户端和服务器上的行为不同
- 对填充字段的 MongoDB 查询
- MongoDB查询优化
- 在 mongodb 查询中操作列表
- 使用 Node.js 驱动程序生成动态 mongodb 查询
- MongoDB:查询数组上的浮点数范围
- MongoDB查询字符串与来自角度前端的ISODate
- node.js 和 express :顺序执行流一个接一个的 mongodb 查询请求
- 仅返回MongoDB查询中一个字段的不同值
- 关于mongodb查询
- 使用Express和Mongodb查询API和数据库
- 在Meteor中呈现来自复杂MongoDB查询的模板
- mongodb查询子数组