0

我严格来说是 C++ 的初学者,但我想知道在 C++ 程序中运行的 javascript(或 Lua 或任何脚本语言)是否受制于 C++ 代码可以提供的相同类型的硬件加速。

我意识到这需要在你的程序中的某个地方有一个 js 引擎,但是很好奇这个 javascript 是否会因某种原因而天生更快/更好。

4

3 回答 3

3

正如您所说,这样的程序必须使用某种 javascript 引擎,很可能已经在 V8 等浏览器中使用。任何速度提升(如果有的话)主要来自应用程序设计。您的程序可能不必使用与 javascript 交织在一起的尽可能多的资源和抽象。

于 2013-03-31T01:18:00.493 回答
2

JavaScript 本身是一种解释/翻译语言。可以为它编写自己的解释器或翻译器(如果你真的很聪明,比现有的做得更好......),但做一些“有效”的事情是一项艰巨的任务,更不用说改进现有的,并且很可能很难涵盖所有怪癖,并且“它在 Firefox 中以这种方式工作,在 IE7 中以这种方式工作,在 IE8+ 中以某种不同的方式工作”类型的网站使用的解决方法。

如果您使用预先存在的 JS 解释器,则几乎没有好处。

于 2013-03-31T01:22:39.090 回答
0

速度不是语言引入的属性,而是实现。一种 Javascript 翻译器可能是使用被认为是最佳的算法编写的,而另一种可能是使用草率、缓慢的算法编写的。Javascript 源代码中使用的算法将是最重要的优化尝试。

同样,C++ 编译器通常会尝试自动优化代码。C++ 的实现可能会生成一个 Javascript 翻译器,该翻译器被认为对一台机器来说是最佳的,但对另一台机器来说却非常慢,而另一个可能会产生一个对两台机器都完美或缓慢的 Javascript 翻译器。

于 2013-03-31T01:25:13.363 回答