« 上一篇下一篇 »

Web应用之虚拟内存管理

内存管理不善会导致UI的性能问题。因为缺乏优秀的排除内存问题的工具开发者通常要观察浏览器的内存使用,然后逐步减少引起问题应用的内存占用。有个好消息是内存故障排查工具正在开发中。
 
      内存分页是与内存相关的另一种风险。操作系统为应用提供两种可用的内存:物理的和虚拟的。物理内存映射在基础计算机中极快的RAM芯片上;虚拟内存映射到非常慢的海量存贮设备上,它用更大的可用存储空间弥补了内存的相对狭小。

      如果网页的内存需要增长到足够大,可能会迫使操作系统开始内存分页,一个极慢的进程凭借迫使其他进程放弃其真正的内存来给浏览器不断增长的需求腾出空间。之所以使用术语——分页,是因为多有的现代操作系统把内存组织到独立的页面上,这个术语描述了映射到物理或虚拟内存上的最小内存单元。当分页发生时,系统把内存页从物理内存转移到虚拟内存上,反之依然。

      分页导致的性能降低和GC停顿有一点不同;分页会导致全面的、无处不在的迟钝,而GC停顿往往会导致离散且孤立的停顿,它们会间歇式的发生并且停顿的长度会随着时间而增长。尽管它们不同,但这些问题中的任意一个都是实现创建快速响应用户界面目标的巨大挑战。

      Ajax开创了一个持久运行且以JavaScript为中心的网页新时代。这样的网页是真正的托管应用,并和其他所有应用一样都遵循相同的用户界面准则。这类应用通过减少主应用线程上执行的运算来保持用户界面的快速响应,这点是至关重要的。

      Web Workers是一个功能强大的新工具,它可用于解除威胁到UI快速响应能力的复杂计算,当Web Workers不可用时,可以使用Gears插件和JavaScript定时器。

      内存管理不善会导致UI的性能问题。因为缺乏优秀的排除内存问题的工具,开发者通常要观察浏览器的内存使用,然后逐步减少引起问题的应用的内存占用。有个好消息是内存故障排查工具正在开发中。

« 上一篇下一篇 »