复习

有效地对一段代码进行性能基准分析,特别是将它与同样代码的另一种写法相比较来看哪一种方式更快,需要小心地关注细节。

与其运行你自己的统计学上合法的基准分析逻辑,不如使用Benchmark.js库,它会为你搞定。但要小心你如何编写测试,因为太容易构建一个看起来合法但实际上有漏洞的测试了——即使是一个微小的区别也会使结果歪曲到完全不可靠。

尽可能多地从不同的环境中得到尽可能多的测试结果来消除硬件/设备偏差很重要。jsPerf.com是一个用于大众外包性能基准分析测试的神奇网站。

许多常见的性能测试不幸地痴迷于无关紧要的微观性能细节,比如比较x++++x。编写好的测试意味着理解如何聚焦大局上关注的问题,比如在关键路径上优化,和避免落入不同JS引擎的实现细节的陷阱。

尾部调用优化(TCO)是一个ES6要求的优化机制,它会使一些以前在JS中不可能的递归模式变得可能。TCO允许一个位于另一个函数的 尾部位置 的函数调用不需要额外的资源就可以执行,这意味着引擎不再需要对递归算法的调用栈深度设置一个随意的限制了。