【发布时间】:2012-04-11 05:02:29
【问题描述】:
这更多的是关于使用 V8 引擎的 Node.JS。这是也用于 Google Chrome 的 JavaScript 引擎。
我听说 V8 非常快,不仅适用于 Node,也适用于浏览器。然而,我注意到关于 JavaScript 的一件事是,类型不是为变量编码的。
要在 Java 中完成此操作,您需要为所有内容创建一个 Object 变量类型。例如,在for 循环中,这将显着降低效率:
for (var i = 0; i < array.length; i++) {}
我的问题是,V8 如何处理变量类型?它是否知道这个i 变量总是int 或long? (我认为这不太可能,因为i++ 能够将long 转换为double。)
或者 V8 是否以无关紧要的方式处理事情?我认为 JIT 编译器将创建的一些简单示例会很有用。 Java 和 JavaScript 都具有将代码转换为 C 的 JIT 编译器。
我不是 C 程序员,但我很想知道如何处理类型,以及 Java 在该领域是否真的更高效。 (是的,我知道 I/O 对于大多数程序来说比类型处理更重要)
【问题讨论】:
-
"types are notcoded for variables" -- 您在这里寻找的术语是 dynamically typed(与 相反)静态类型)。见type system。
标签: javascript performance variables types v8