第五章: 程序性能
优质
小牛编辑
136浏览
2023-12-01
这本书至此一直是关于如何更有效地利用异步模式。但是我们还没有直接解释为什么异步对于JS如此重要。最明显明确的理由就是 性能。
举个例子,如果你要发起两个Ajax请求,而且他们是相互独立的,但你在进行下一个任务之前需要等到他们全部完成,你就有两种选择来对这种互动建立模型:顺序和并发。
你可以发起第一个请求并等到它完成再发起第二个请求。或者,就像我们在promise和generator中看到的那样,你可以“并列地”发起两个请求,并在继续下一步之前让一个“门”等待它们全部完成。
显然,后者要比前者性能更好。而更好的性能一般都会带来更好的用户体验。
异步(并发穿插)甚至可能仅仅增强高性能的印象,即便整个程序依然要用相同的时间才成完成。用户对性能的印象意味着一切——如果不能再多的话!——和实际可测量的性能一样重要。
现在,我们想超越局部的异步模式,转而在程序级别的水平上讨论一些宏观的性能细节。
注意: 你可能会想知道关于微性能问题,比如a++
与++a
哪个更快。我们会在下一章“基准分析与调优”中讨论这类性能细节。
链接
- Web Workers
- SIMD
- asm.js
- 复习