如果我们有用Java / C#编写的V8之类的代码,是否可以用Java / C#这样的另一种语言编写像Nodejs这样的Javascript运行时? [关闭]

问题描述 投票:0回答:1

据我了解,V8是将Javascript解析为C ++分配并通过Javascript代码操作C ++对象的功能。在我了解了V8和libuv之后,我在Node.js上获得的所有乐趣都消失了。由于Nodejs并不是真正的魔术师,因此在我看来就像V8之类的事情不可避免地展开了。 V8是真正的交易。它是一款如此漂亮,实用的软件。

因此,回到问题所在,以另一种语言(如C#/ Java)拥有类似V8的东西并因此实现类似于Nodejs的环境是否可能和/或更具优势?

javascript java c++ node.js v8
1个回答
0
投票

是的,从技术上讲是可能的,但是可能会有性能问题。性能问题的原因是C#/ Java代码在其自己的虚拟机(C#的CLR,Java的JVM)中运行。要在C#/ Java中运行javascript,我们需要“虚拟机中的虚拟机”之类的东西。当然,将javascript转换为C#/ Java指令然后转换为CLR / JVM字节码将是巨大的开销。

[有一个用C#编写的javascript解析器/解释器-叫做Jint。您可以在这里阅读:https://github.com/sebastienros/jint

© www.soinside.com 2019 - 2024. All rights reserved.