为什么不是在运行前编译Node.js?

我对这项技术的理解是,它被编译成汇编。 在速度上,它比Java慢,但比Ruby和Python快。 在客户端,解释器是有道理的,但在服务器端,我的第一个想法是编译之前运行,或者至less有select这样做,是一个最佳的体系结构。 如果JavaScript是以这种方式预编译的,它会比Java运行得更快吗? 或者这是弱types的语言,这意味着JavaScript将永远比Java慢呢?

一些Node.js是C ++,并且是预编译的。 但我的理解是,尽可能在Javascript中保留尽可能多的内容,但是在性能差的地方使用C ++。

如果没有V8 JavaScript引擎 ,Node.js是不可能的。 这款发动机以极快的速度而闻名。 它是为Chrome浏览器而构build的,但性能在Node.js中也得到了回报。

关于Node.js的性能,作为一个Web服务器,它至less和Apache + PHP等其他主要的Web服务器一样。 所以在常见使用情况下,性能不是问题。 也就是说,有更快的技术。 据了解,基于Erlang的服务器在并发负载下速度更快(有趣的是,Erlang也是一种dynamictypes语言)。

对于纯数字运算的cpu / gpu密集型任务,Node.js不是一个好的select,除非你用Fabric Enginedebugging它,在这种情况下,它可以与C ++相提并论。

目前有几个项目正在探索JavaScript的速度问题: