【问题标题】:SpiderMonkey vs JavaScriptCore vs?SpiderMonkey vs JavaScriptCore vs?
【发布时间】:2010-10-28 02:08:53
【问题描述】:

我有一个 C++ 桌面应用程序(用 wxWidgets 编写),我想添加对某些脚本语言的支持。

脚本主要用于通过用户提供的 JavaScript 代码对字符串、数字和日期进行运行时转换。

我想使用 JavaScript,因为它被广泛使用并且每个人都熟悉它的语法。

四处搜索,似乎我有两个选择:

  • 来自 Mozilla 的 SpiderMonkey
  • 来自 WebKit 的 JavaScriptCore

有人试过吗?哪一个更容易设置? 你知道其他一些更适合我需要的实现吗?

顺便说一句,我的目标是 Windows 和 Linux 平台。

【问题讨论】:

    标签: javascript c++ embedded-language spidermonkey


    【解决方案1】:

    还有 Google 的 V8 JavaScript 引擎,在 Linux 上构建得很好,嵌入 API 似乎也很简单:(与 SpiderMonkey 的相比,从未看过 JavaScriptCore API) http://code.google.com/apis/v8/get_started.html

    【讨论】:

      【解决方案2】:

      当然,你也可以使用Lua,它不仅是专门为此设计的,而且比任何 JS 都要快。

      此外,它还具有精心设计的语义、极简核心、简单的 C API、出色的可移植性、非常成熟的JIT、我见过的最有用的在线社区等等......

      【讨论】:

      • 我确实考虑过 Lua,但我想避免我的应用程序的用户学习一门新语言。另一个潜在的问题是缺乏处理日期/时间的功能。 AFAICT,您只能获取系统时间,仅此而已。但是,我的应用程序需要能够将字符串输入解析为日期,然后执行“添加 3 天”或“查找 2 个日期之间的天数差异”等操作。
      • 无论您将哪种语言嵌入到您的应用程序中,您都必须公开一些特殊的 API。添加一些日期管理功能可以在不到 100 行的 Lua 中完成。 “没有新语言”是一个真正的问题,OTOH。
      • “比任何 js 都快得多”? [需要引用]!请给个链接。
      • @Sean McMillan,不幸的是,好的基准很少见。另外,请看日期:在过去的几年中,JS 已经发展了很多。尽管如此,Lua 并没有停滞不前,LuaJIT 2.0 在许多高性能任务上已经超过了 Java,在某些(实际)情况下它甚至比大多数 C 编译器还要好。
      • LuaJIT2 以大约 4 倍的速度击败 V8。 LuaJIT2 在大多数事情上几乎接近 C 级别。
      【解决方案3】:

      JavaScriptCore 具有稳定的 C API(和 ABI),并且已在 macos 上提供(并用作)标准系统框架。

      [编辑:哦,它作为一个独立的库在 linux 和 windows 上工作,虽然我相信只有 debian 这样分发它]

      【讨论】:

        猜你喜欢
        • 2012-02-22
        • 2023-03-08
        • 2014-08-17
        • 2011-09-18
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 2010-12-09
        相关资源
        最近更新 更多