Nodejs的Javascript运行时引擎是Chrome V8。node
JavaScript引擎
实现,最初由一些语言方面专家设计,后被谷歌收购,随后谷歌对其进行了开源
。使用C++开发
,在运行JavaScript以前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码
(IA-32, x86-64, ARM, or MIPS CPUs),而且使用了如内联缓存
(inline caching)等方法来提升性能
。支持众多操做系统
,如windows
、linux
、android
等,也支持其余硬件架构
,如IA32,X64,ARM等,具备很好的可移植
和跨平台特性
。这里先说一下什么是编译型语言和解释性语言:android
编译型语言
: 在程序执行以前必须进行专门的编译过程,有以下特色:windows
只须编译一次
就能够把源代码编译成机器语言
,后面的执行无须从新编译
,直接使用以前的编译结果就能够;所以其执行的效率比较高
;不一样平台对编译器影响较大。缓存
解释性语言
- 解释行语言,支持动态类型,弱类型,在程序运行的时候才进行编译,而编译前须要肯定变量的类型,效率比较低,对不一样系统平台有较大的兼容性.架构
源代码不能直接翻译成机器语言
,而是先翻译成中间代码
,再由解释器
对中间代码进行解释运行
;性能
程序不须要编译
,程序在运行时才翻译成机器语言,每执行一次都要翻译一次
;Python
、JavaScript
、Shell、Ruby、MATLAB等;效率
通常相对比较低
,依赖解释器
,跨平台性好;比较
:优化
编译性语言的运行效率比解释性语言更高
;可是不能一律而论,部分解释性语言的解释器经过在运行时动态优化代码,甚至能使解释性语言的性能超过编译性语言;进过以上说明,解释性语言,运行效率低
,随着Web相关技术的发展,JavaScript所要承担的工做也愈来愈多,早就超越了“表单验证”的范畴,这就更须要快速的解析和执行JavaScript脚本。V8引擎就是为解决这一问题而生
,在node中也是采用该引擎来解析JavaScript。spa
Nodejs 实际上就是一个使用C++完成的程序,其能执行JavaScript代码,它的底层主要由两部分第三方库组成 —— Chrome V8 和 libuv操作系统