V8可以安装在嵌入式芯片中吗?

在一个频道中,我经常有人问以下问题:

  

这家试图雇用我的公司正在做普通的javascript和jquery。没有反应,或任何其他框架。 JQuery是最骇人听闻的东西,难道在2020年他们仍然没有使用更好的东西吗?你会接受这样的报价吗? [1]

这让我开始思考:当然,如果一家公司正在做任何事情,这是有充分理由的,并且将javascript推到没有意义的地方很受欢迎。销售点系统,嵌入式系统没有太多可用资源。结果,您尽一切可能从尝试使用的芯片中获得更多性能。这种想法使我想起了马克·扎克伯格(Mark Zuckerberg)说“ Facebook浪费太多时间试图用javascript和HTML5而不是本机实现移动应用程序” [2]。我似乎找不到消息来源,但我确实听到一些谣言,说他被某家公司迅速证明是错的,而这家公司一向很清楚javascript在移动设备上是如何工作的。这个想法使我开始思考以下内容:

  1. 嵌入式芯片可以包含多少代码?
  2. 是否有可能将整个V8引擎嵌入芯片中,以使javascript以与C / C ++相同的性能(或几乎相同)运行在它们上?
  3. 如今使用香草javascript真的有那么多污名吗?

最后一个问题更多是修辞性的。但我将不胜感激。


  1. 当然会编辑此问题以适合听众。
  2. https://techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on-html5/
yxsong1972 回答:V8可以安装在嵌入式芯片中吗?

V8开发人员在这里。正如评论员所指出的那样,这个问题有点含糊不清,无法给出可靠的答案(在这里也可能不是真正的话题),但是我可以提供一些想法。

V8具有某些硬性要求,例如:

  • 它仅需要几兆的内存才能启动,因此它不能在容量少于此数的微控制器上运行
  • 对于正常操作,它需要(来自OS /内核)权限来分配可执行内存。最新版本支持“无节制”模式,这种模式可以避免这种情况,但会牺牲性能(不生成优化代码),而这取决于您的工作量。
  • 它生成的代码针对某些最低CPU功能,例如x86上的SSE2和ARM上的armv6 + vfpv2。此最小值甚至适用于“无节制”模式,因为它执行V8在构建时生成并包含在其二进制文件中的代码。 (只要有足够的工程投资,就可以从技术上修改其代码生成后端,以降低硬件需求。)
  • 它正式支持在Windows,MacOS,Linux,Android,紫红色上运行;社区也支持其他一些操作系统。如果您的嵌入式设备具有不同的OS,或者根本没有内核,则必须进行调整。

除此之外,这只是您想要事物变快的问题。除了平台兼容性要求之外,如果您愿意等待足够长的时间,几乎所有软件都可以在几乎任何硬件上运行。您是否曾见过Raspberry Pi在常规的Linux发行版中启动,或者在Pentium-133上启动Windows XP?它可以工作,但是很慢!人们花很多钱购买更快的硬件是有原因的;-)

这方面的一些注意事项:

  • 在许多情况下,原始执行速度并不重要。例如,当在本机模块中完成繁重的工作时,通常可以在这些模块之间使用相对较慢的脚本语言作为“胶水”。
  • V8并非针对资源严重受限的环境,但是还有其他JavaScript引擎专门针对微控制器。为了节省内存和复杂性,它们中的许多仅支持有限的功能集(例如,仅ES3或ES5,没有现代的EcmaScript功能)。
  • 如果给定用例确实对较弱的硬件有严格的性能要求,那么使用低级语言是有意义的。因此,许多微控制器都使用C语言(即C的子集)进行编程。

谈到C / C ++与JavaScript:很难比较。简短的答案是C更快,但这取决于。您可以在微基准测试中使用动态编译代码的优势,因此JavaScript会更快。通常,与手动内存管理相比,诸如自动垃圾收集之类的语言功能会花费百分之几的性能。通过JIT编译来减轻动态语言的速度同样会花费一些时间,只是因为这是CPU要做的额外工作。在足够快的硬件上,所有这些开销通常都足够小而无关紧要,但是,如果您在硬件完全无法做的事情上运行(同时仍然满足用户对性能的期望),则评估可能会改变。 / p>

,

这是一个完整的答案,太多了。

  1. 是否有可能将整个V8引擎嵌入芯片中,以使javascript以与C / C ++相同的性能(或几乎相同)运行在它们上?

没有V8不能在微控制器上运行。也许是微处理器。但是可以,您可以在微控制器上运行javascript。 Espruino是一个很好的例子。我不知道它的速度,但它似乎能够填补用于微控制器编程的爱好者空间。就像micropython一样。

本文链接:https://www.f2er.com/3095321.html

大家都在问