Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript V8 vs NativeClient_Javascript_C++_Compiler Construction_V8_Google Nativeclient - Fatal编程技术网

Javascript V8 vs NativeClient

Javascript V8 vs NativeClient,javascript,c++,compiler-construction,v8,google-nativeclient,Javascript,C++,Compiler Construction,V8,Google Nativeclient,我知道V8在执行之前会将JavaScript编译为本机代码(IA-32、x86-64、ARM或MIPS CPU)。我读到google native client将C/C++编译成机器代码,所以如果这两种技术返回相同的结果(机器代码),除了使用的语言(JavaScript C/C++),它们之间有什么区别呢?主要区别是,每个浏览器都支持JavaScript,NativeClient只支持Chrome(Chrome)。因此,如果你想编写一个Web应用程序,JavaScript是一个不错的选择,因为它

我知道V8在执行之前会将JavaScript编译为本机代码(IA-32、x86-64、ARM或MIPS CPU)。我读到google native client将C/C++编译成机器代码,所以如果这两种技术返回相同的结果(机器代码),除了使用的语言(JavaScript C/C++),它们之间有什么区别呢?

主要区别是,每个浏览器都支持JavaScript,NativeClient只支持Chrome(Chrome)。因此,如果你想编写一个Web应用程序,JavaScript是一个不错的选择,因为它将(几乎)在所有浏览器中运行,而不仅仅是在Chrome中。

好吧,给定一个CPU架构(比如说,你在英特尔机箱上运行),你可以说任何技术最终都会编译成机器代码,对吗?因此,Python、Perl、JavaScript、C++、FORTRAN等只是被编译成机器代码的不同语言(Python和Perl通常是字节码VMS,但它们也在底部运行为机器代码)。 v8是一个Javascript运行时。是的,它使用幕后编译来加速代码。其他JS运行时也这样做(*Firefox的猴子,等等)

NaCl(无论是否通过PNaCl)允许您编写最终在浏览器中执行的C/C++代码。与JS相比,这有一些优点和缺点,您选择哪一种取决于您的具体需求。对于大多数应用程序来说,JS更合适,因为它是一种更高级的语言,所以编程更方便。然而,有些应用程序需要使用JS无法实现的特殊性能级别(至少目前是这样)。这些应用程序得益于内部有一个NaCl模块,该模块通常参与到包括JS在内的更大体系结构中


阅读了解更多详情。

至少不要投反对票,请留下评论:-p平台支持和技术差异之间的关系是什么?我同意你的看法。难道不能为上述情况提供一些API吗?他们是否值得把一种新的语言带入网络?@ TaloPro:这是一个涉及的问题,答案必须考虑多个角度。例如,考虑一下现有的C/C++应用程序。他们的创建者不一定要用不同的语言重写整个应用程序和/或放弃性能。对他们来说,更有趣的问题是“我可以在web上使用我的应用程序,并且保持它的快速性吗?”是的,但是在任何情况下,这些程序都不会像在桌面上那样完全工作,它们将在沙箱中,并将限制C++@TaronPro的可能性:限制是最小的,随着时间的推移,更多的限制将被取消(只要保持沙箱的安全性),结果根本不一样,未优化的JS编译器只会对代码中的复杂函数发出大量的运行时调用,即使与优化编译器的输出相比,C/C++生成的代码也会更加紧凑。