本教程操作环境:windows7系统、nodejs 12.19.0版,dell g3电脑。
nodejs 概述
根据百度百科解释,node.js是一套用来编写高性能网络服务器的javascript工具包。node.js是一个可以快速构建网络服务及应用的平台,该平台的构建是基于chrome's javascript runtime,也就是说,实际上它是对googlev8引擎(应用于google chrome浏览器)进行了封装。v8引 擎执行javascript的速度非常快,性能非常好。
nodejs并不是提供简单的封装,然后提供api调用,如果是这样的话那么它就不会有现在这么火了。node对一些特殊用例进行了优化,提供了替代的api,使得v8在非浏览器环境下运行得更好。例如,在服务器环境中,处理二进制数据通常是必不可少的,但javascript对此支持不足,因此,v8.node增加了buffer类,方便并且高效地 处理二进制数据。因此,node不仅仅简单的使用了v8,还对其进行了优化,使其在各环境下更加给力。
即时编译jit 概述
v8采用即时编译技术(jit),直接将javascript代码编译成本地平台的机器码。宏观上看,其步骤为javascript源码—>抽象语法树—>本地机器码,并且后一个步骤只依赖前一个步骤。这与其他解释器不同,例如java语言需要先将源码编译成字节码,然后给jvm解释执行,jvm根据优化策略,运行过程中有选择地将一部分字节码编译成本地机器码。v8不生成中间代码,一步到位,编译成机器码,cpu就开始执行了。比起生成中间码解释执行的方式,v8的策略省去了一个步骤,程序会更早地开始运行。并且执行编译好的机器指令,也比解释执行中间码的速度更快。不足的是,缺少字节码这个中间表示,使得代码优化变得更困难。
v8 概述
v8 作为一个 javascript 引擎,最初是服役于 google chrome 浏览器的。它随着 chrome 的第一版发布而发布以及开源。现在它除了 chrome 浏览器,已经有很多其他的使用者了。诸如 nodejs、mongodb、couchdb 等。
v8使用c++开发,并在谷歌浏览器中使用。在运行javascript之前,相比其它的javascript的引擎转换成字节码或解释执行,v8将其编译成原生机器码(ia-32, x86-64, arm, or mips cpus),并且使用了如内联缓存(inline caching)等方法来提高性能。有了这些功能,javascript程序在v8引擎下的运行速度媲美二进制程序。
v8中实现的ecmascript中指定 ecma - 262 ,第3版 运行在windows xp和vista,mac os x的10.5(雪豹和linux系统使用ia - 32或arm处理器。
v8可以独立运行,也可以 嵌入 到任何c++应用程序。项目托管在google code上 [1] ,基于bsd协议,任何组织或个人可以将其源码用于自己的项目中。
更多node相关知识,请访问:nodejs 教程!!
以上就是nodejs中v8引擎是什么的详细内容。
