0

我目前在低级 C 课程中,但我将 Javascript 编程为我的工作。

到目前为止,这是我的书所涉及的几个 C 优化/问题领域(刚开始,所以我没有太多):

  • 过程开销(恢复寄存器、创建堆栈等)
  • 有时创建临时变量而不是在循环中读取/写入内存。

此外,可以花多少时间“优化”Javascript?C 被编译为机器代码,并且可以花费更多时间来编译可执行文件。一个典型的 JS 编译器优化花费了多少时间?

Javascript 是一种比 C 更高级别的语言,因此我实际上并不“知道”下面发生了什么。我应该担心哪些优化?我现在在 C 中学习的内容是否也适用于 Javascript?

4

1 回答 1

4

Javascript 和 C 有如此完全不同的表达方式,我怀疑甚至可以比较优化技术。

对于这篇文章,我将只看程序员可以进行的优化:

C:

  • 选择最合适的数据类型。(int/long/float/double)
  • 位域和字边界对齐。
  • 使用malloc和选择何时释放内存以及何时重用它。
  • 中间计算

Javascript:

  • 避免在需要时创建无意义的对象。对象重用
  • 中间计算
  • 避免过于频繁地刷新 DOM
  • 将大量未使用的引用设置为null

就像一个简单的例子。这两者真的是天壤之别,所以我必须将优化技术简化为:

  • 重用你能做的
  • 不要做你不需要做的事情。
  • 如果你做了一些计算成本很高的事情并且你再次需要它——保存它。
  • 选择合适的算法。

就我而言,列表中的最后一项是任何编码人员都可以学习如何做的最重要的优化。

  • 如果您有更好的分类可以使用,请不要使用BogoSort 。(提示,你会的。)
  • 看看你的标准库是否有一个快速的方法来做你想做的事情。在你证明你的旧轮子不起作用之前,不要重新发明轮子。
  • 在分析表明值得付出努力之前,不要太担心进行微优化。

Disclaimer: Yes, I know the old adage of 'Premature optimization is the root of all evil.' Choosing a smart, or at the very least, not terribly dumb way to solve a problem is not premature..

于 2012-09-27T01:12:07.403 回答