- 垃圾回收导致的停顿(离散且孤立的停顿,间歇式的发生并且停顿的长度会随时间而增长)
自动内存管理是有开销的。在执行垃圾回收(简称:“GC”)时,GC实现中最复杂的几乎是“stop the world”,它会冻结整个运行环境(包括正在调用的主浏览器JavaScript线程),直到遍历完整个创建对象的“堆”。在这个过程中,它会查找那些不再使用或能够回收未用内存的对象。
但随着应用程序内存占用的增加,这个过程所需的时间将增长并最终达到引起用户注意的程度。 - 内存分页导致的停顿(全面的,无处不在的停顿)
操作系统为应用程序提供可用的内存:物理内存和虚拟内存。
物理内存映射在极快的RAM芯片上;虚拟内存映射在非常慢的海量存储设备上(比如硬盘);
但网页中内存需求增长到足够大,就可能会迫使操作系统开始内存分页(一个极慢的进程凭借迫使其他进程放弃真正的内存来给浏览器不断增长的需求腾出空间)
当发生内存分页时,系统把内存页从物理内存转移到虚拟内存(例如,从RAM到硬盘上)反之亦然。