【发布时间】:2012-09-27 09:22:27
【问题描述】:
我目前正在学习低级 C 课程,但我的工作是编写 Javascript。
到目前为止,我的书已经介绍了几个 C 优化/问题领域(刚刚开始,所以我没有太多):
- 过程开销(恢复寄存器、创建堆栈等)
- 有时会创建临时变量,而不是在循环中读取/写入内存。
另外还有多少时间可以用来“优化”Javascript? C 被编译为机器代码,并且可以花费更多时间来编译可执行文件。一个典型的 JS 编译器优化花费了多少时间?
Javascript 是一种比 C 更高级别的语言,因此我实际上并不“知道”下面发生了什么。我应该担心哪些优化?我现在在 C 中学习的内容是否也适用于 Javascript?
【问题讨论】:
-
嗯,没有像“典型的 JS 编译器”这样的想法,所以 .. Chrome/V8 恰好是一个非常优化的 JS 实现,虽然 FF 不是也不是狗。我相信两者都使用不同的方法,但我没有研究过两者的内部结构。 ActionScript 基于 JavaScript,但可以利用静态类型注释;动态类型可能是 JS 优化的最终限制(同样的“问题”困扰着其他动态语言)。
-
我认为你应该看看实际的 Javascript 引擎,至少 V8 和 SpiderMonkey。我倾向于说“不”,因为 C 中有一些低级操作在 Javascript 中是不可能的(例如 GC 和 malloc)。
-
@JaredFarrish 但是 Java/C# 表明 GC 与 malloc 在许多用例中可以支持 GC。与 JavaScript 的区别在于 Java/C# 也是强类型的..
-
还有Native Client in Chromium,它提供 Pepper C 和 Pepper C++。这将是一个更有趣的比较。
-
@pst - 重点是“我正在学习的 C 优化技术在 Javascript 中是否有效”。该评论并不意味着一种方法比另一种更好或更差,只是不同。
标签: javascript c optimization