为什么不是在运行前编译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的速度问题:
- Dart – http://www.dartlang.org/support/faq.html 。 (它不只是速度,而是它的一部分)。
- 节点本地 – https://github.com/d5/node.native/