gpt4 book ai didi

javascript - 使用Chrome和Node.js时,客户端和服务器上是否已编译javascript?

转载 作者:搜寻专家 更新时间:2023-11-01 00:32:42 27 4
gpt4 key购买 nike

我一直认为脚本语言(javascript、vscript、任何一种“脚本”)都是解释性的,因此比编译语言(如c和c++)要慢。
“javascript是一种解释性语言,具有可选的jit编译支持。在较旧的实现中(例如InternetExlorer8和更早版本,Firefox3.5之前的版本),JavaScript是一种纯解释语言。这意味着脚本执行时不需要进行初步编译,即不需要将脚本文本转换为与系统相关的机器代码。“--http://www.javascripter.net/faq/whatisja.htm
在阅读以下内容时,显然google chrome(使用v8)在客户端编译javascript:
“这就是它的工作原理。首先,v8将javascript函数的编译推迟到它们第一次执行之前(以减少编译所花费的总时间)。接下来,经常执行的代码片段将由专门的优化编译器第二次编译。第二个过程需要更多的时间,但是由于许多先进的优化技术,它可以提供更快的代码。“--http://thenextweb.com/google/2014/02/13/google-speeds-chrome-compiling-javascript-background/
听起来像是在v8上,javascript现在是一种编译语言,因为它们一看到函数就在执行之前将每个函数编译成机器代码。
此外,这个https://gist.github.com/spion/3049314似乎还表明(对于这个测试用例),v8上的javascript甚至比编译后的c++做同样的事情更快。
这是否意味着在客户端和服务器上执行javascript之前(node.js使用v8),javascript实际上被编译成机器代码,因此作为编译的机器代码(如java、c或c++are)运行,而不是具有相关执行速度优势的解释代码(如perl、php或powershell are)?
翻译语言:
“口译的主要缺点是
程序执行与在
主机CPU“--http://en.wikipedia.org/wiki/Interpreted_language
编译语言:
“编译语言总是被认为是快速的,因为它们由计算机直接执行。”--http://www.codeproject.com/Articles/696764/Differences-between-compiled-and-Interpreted-Langu

最佳答案

是的,2014年,每个人都使用各种策略将javascript编译为本地代码以优化代码。甚至还有像asm.js这样的标准允许以这样一种方式编译javascript,即生成的代码至少与用c/c++或java编写的代码一样快。
一如既往,您最终获得的性能实际上取决于优化和您的代码。正如用Java或C++编写慢代码很容易一样,您也可以编写一些世界上任何自动优化器都无法修复的代码。

关于javascript - 使用Chrome和Node.js时,客户端和服务器上是否已编译javascript? ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com