内存占用情况优化

系统上可用的内存量会显著影响用户体验。 影响范围从系统的整体响应能力一直到电池使用寿命。 在评估低内存设备上的完整体验时,可用内存是一个重要的考虑因素,因为 Windows 在很大程度上依赖于分页和交换内存中的内容。

本指南将指导你使用 Windows Performance Toolkit 分析与内存相关的性能问题并确定根本原因(无论是驱动程序还是用户模式进程)。 主题包括:

  • 驱动程序和应用程序占用情况

  • 工作集和常驻集

  • 池内存分配

  • 堆和 VirtualAlloc 内存分配

目标

本指南将展示如何执行以下任务:

  • 使用 Windows Performance Recorder (WPR) 收集内存相关问题的跟踪。

  • 使用评估和部署工具包 (ADK) 内存占用情况评估来收集内存使用情况基线。

  • 分析驱动程序的分页/非分页池内存使用情况。

  • 分析进程的工作集和常驻集。

  • 了解驱动程序和进程如何以及何时动态分配内存。

工具

在过去,必须使用内核调试器以及大量加密命令来发现当前占用物理内存的数据页和文件页。 现在,可以使用 Windows Performance Toolkit (WPT),通过内置的 Windows 检测,以更易于理解且可操作的方式收集和显示这些信息。

WPT 包括 Windows Performance Analyzer (WPA) 和 Windows Performance Recorder (WPR)。

ADK 中的 Windows 评估工具包也可用于获取内存占用情况评估。 对于在一系列系统重新启动期间以及桌面可见后立即发生的内存使用,此评估创建了快照。 此评估不会在普通计算机操作期间评估内存使用。

ADK Windows Assessment Console (WAC) 是用于运行评估和生成可视化性能报告的工具。

术语

术语 定义
可共享页 一个或多个进程可以使用的页。 例如,可执行映像(.dll、.exe 和 .cpl)或数据文件页(.txt、.doc 等)内的代码页。
专用页 由单个进程独占使用的页,通常包含动态分配的数据,例如堆或 VirtualAlloc。
进程工作集 进程最近引用的页的集合,包含专用页和共享页。
进程专用工作集 进程最近引用的不可共享的专用页的集合。
可用 系统上的进程立即可用的内存量。 此指标由“备用”列表中的页组成,这些页无需写入永久性存储,就可以由其他进程重新使用。

练习

本指南包含以下练习。