如何让 AI 找出偷偷藏在系统中偷吃内存的"元凶"

当你打开任务管理器,发现"使用中"内存比所有进程加起来多出好几个 GB,却找不到去哪了——这篇文章就是写给你的。更关键的是:这种枯燥到让人抓狂的"挨个查每个进程是干什么的"活儿,正好是 AI 的强项。

背景:一个让人抓狂的痛点

排查 Windows 内存占用时,几乎所有人都会遇到这个场景:

任务管理器显示"使用中 13 GB",但把所有进程的内存加起来,只有 9 GB 左右。差了将近 4 GB,去哪了?

更让人崩溃的是:

  1. 网上教程清一色让你"关闭开机启动项"“结束不需要的进程”,但你的启动项已经够少了,该关的都关了,内存还是不够用
  2. 任务管理器的进程列表只展示了"可见进程"的内存,而内核态占用的物理内存(2-3 GB 量级)根本不在这个列表里——这是真正的"内存黑洞"
  3. 即便你知道要查内核内存,还有 90+ 个 svchost.exe200+ 个内核驱动需要逐个搞清楚作用,人工查一遍少说几个小时

问题出在:这不是"找不到命令",而是"找到了命令也没耐心挨个解读 300 多个进程和 200 多个驱动到底在干什么"。

这恰恰是 AI(如 WorkBuddy)擅长的事——它能执行命令、读取输出、逐个查清每个项目的精确作用、归类汇总成图表,而你只需要给它一条足够明确的指令。

这篇文章讲的就是:如何用一条提示词驱动 AI 完成全量内存排查,最终让图表加总与任务管理器的差距控制在 1 GB 以内。


一条提示词驱动 AI 全量排查

整件事的关键就是下面这条提示词。把它丢给 AI(如 WorkBuddy,它有执行 PowerShell 命令、读取文件、生成可视化图表的能力),AI 会按这个标准去理解、执行、验证:

“找找那些偷偷藏起来的深处的进程,排查目标:给出的图表加和要和任务管理器查到的内存占用差距在1GB以内。给我一张完整的图表,这次不需要排除任何项目,但是需要归类告诉我每个项目/每个项目组都是干啥的,不允许给笼统的描述,如’系统用’等,需要精确到作用。”

这条提示词之所以能驱动 AI 产出深度排查结果,关键在于三个约束,每一个都堵死了 AI 偷懒的退路:

1. “差距在 1GB 以内” — 给 AI 一个可量化的验证标准

没有这个约束,AI 很可能在列完进程后就收尾,用一句"大概就这样"糊弄过去。有了这个约束,AI 必须自我验证:把图表加总和任务管理器对比,如果差距超过 1 GB,说明还有内存没找出来,必须继续挖。

这会逼迫 AI 去采集任务管理器进程列表里看不到的内核内存——非分页池、分页池、修改页列表。这才是差距的根源。

2. “不需要排除任何项目” — 堵死跳过难归类项的退路

面对 300 多个进程,AI 的本能是挑内存大的 Top 20 讲一讲,跳过那些"看起来像系统的"小进程。这条约束要求全量覆盖,哪怕 0.1 MB 的进程也要归类。

3. “不允许笼统描述,需精确到作用” — 逼迫逐个查证

没有这条,AI 会写出一堆"Windows 系统服务"“安全组件"“显卡相关”。这条约束要求每个项目都精确到具体功能,比如:

❌ 笼统(AI 默认会这么写)✅ 精确(提示词逼迫 AI 查证后的输出)
系统服务svchost 托管 Winmgmt(WMI 硬件查询接口) + Schedule(计划任务) + Dnscache(DNS缓存)
Windows 组件dwm:将所有窗口画面合成为最终显示帧,处理动画/透明/圆角/阴影/高DPI缩放
显卡相关nvlddmkm:GPU 内核模式驱动,管理显存分配和 GPU 命令提交;DXGKrnl:D3D/Vulkan 图形调度子系统
安全软件MsMpEng:Defender 实时扫描引擎,通过文件系统过滤驱动拦截所有文件 IO 检查病毒
系统进程lsass:本地安全机构,管用户认证、密码哈希、Kerberos 票据签发

要产出右列的描述,AI 必须真正去查每个进程的路径、命令行、托管服务、加载模块——这正是 AI 比人强的地方。


AI 执行的六步方法论

AI 收到提示词后,会按以下步骤执行。这些步骤之间有严格的因果关联——前一步的差距会逼迫后一步的深入。

第一步:用私有内存而非 WorkingSet(口径选择)

Get-Process 默认返回的 WorkingSet64 包含共享内存(DLL 映射、共享堆等),多个进程共享同一块内存会被重复计算。例如 ntdll.dll 被每个进程映射,加总会虚高 1-2 GB。

AI 需要主动改用 PrivateMemorySize64,它是进程独占的、不被共享的内存,加总后更接近真实占用。

Get-Process |
  Group-Object Name |
  Sort-Object {($_.Group | Measure-Object PrivateMemorySize64 -Sum).Sum} -Descending |
  ForEach-Object {
    $sum = [math]::Round(($_.Group | Measure-Object PrivateMemorySize64 -Sum).Sum/1MB, 1)
    "{0,-40} x{1,-3} {2,10:N1} MB" -f $_.Name, $_.Count, $sum
  }

加总后 AI 会发现:和任务管理器还是差了好几 GB——这推动它进入第二步。

第二步:采集内核内存(关键突破)

差距来自内核态。Windows 的物理内存分两大块:

  • 用户态:进程的私有内存(第一步采到的)
  • 内核态:驱动、缓存、页表等,任务管理器进程列表里完全看不到

AI 需要用性能计数器采集内核内存的四个组成部分:

# 非分页池:驱动代码和不可换页的数据结构,必须常驻物理内存
Get-Counter '\Memory\Pool Nonpaged Bytes'

# 分页池:注册表数据、句柄表、文件对象,可换出到页面文件
Get-Counter '\Memory\Pool Paged Bytes'

# 文件缓存(Standby):最近读过的文件缓存,内存紧张时自动释放
Get-Counter '\Memory\Standby Cache Normal Priority Bytes'
Get-Counter '\Memory\Standby Cache Core Bytes'

# 修改页列表:已修改但尚未写回磁盘的脏页
Get-Counter '\Memory\Modified Page List Bytes'

四个内核内存项的含义,AI 需要理解清楚才能正确归类:

内核内存能否释放典型占用主要内容
非分页池❌ 不能200-800 MB内核驱动的代码段、设备 I/O 缓冲区、中断 DPC 数据。在 DISPATCH_LEVEL 及以上运行的代码不能缺页,必须常驻
分页池⚠️ 部分可换出400-800 MB注册表 hive 数据、NTFS 元数据、进程/线程对象、文件对象、同步事件。进程越多句柄越多,这块越大
文件缓存✅ 自动释放500-3000 MBWindows 预加载的文件数据,Superfetch 主动填充。内存紧张时优先让出
修改页✅ 写盘后释放50-200 MB待刷盘的脏数据

提示:非分页池超过 500 MB,大概率是装了太多第三方内核驱动(虚拟机软件、网络加速器、抓包工具等),第五步会展开排查。

第三步:计算加总并验证误差(量化验证)

AI 把前两步的数据加起来,和任务管理器对比——这就是提示词里"差距 1GB 以内"的验证环节:

进程私有内存合计
+ 内核非分页池
+ 内核分页池
+ 修改页列表
= 图表加总

对比基准(任务管理器"使用中"的算法):

$os = Get-CimInstance Win32_OperatingSystem
$usedMB = [math]::Round(($os.TotalVisibleMemorySize - $os.FreePhysicalMemory)/1KB, 0)

验证标准:差距 < 1 GB 即合格。 剩余差距来自内核栈、系统 PTE、驱动镜像段等无法单独计量的杂项内核开销,属于正常现象。

AI 容易踩的坑:文件缓存(Standby) 不计入加总,因为任务管理器的"使用中"不含 Standby(它归在"已缓存"里)。如果 AI 把 Standby 加进去,差距会虚大 1-3 GB。

第四步:归类所有进程(禁止笼统描述)

这是提示词约束最严格的一步,也是 AI 最有价值的环节。

AI 的执行逻辑

  1. 拿到所有进程列表(按名称分组)
  2. 对每个进程组,查证其精确作用:
    • 进程路径(Get-Process -Id $pid).Path — 看是哪个软件的
    • 命令行Get-CimInstance Win32_Process -Filter "ProcessId=$pid" | Select CommandLine
    • 托管的服务(svchost):Get-CimInstance Win32_Service | Group-Object ProcessId
    • 模块列表(Get-Process -Id $pid).Modules | Select ModuleName — 看加载了哪些 DLL
  3. 功能域分组(而非按内存大小),每个组标注精确作用
  4. 输出图表

为什么这一步 AI 比人强:300 多个进程挨个查证,人查到 30 个就会失去耐心开始笼统归类,AI 能不厌其烦地全部查完。但要靠提示词第三条约束逼它——否则 AI 也会学人偷懒。

第五步:拆解 svchost 和内核驱动

这是第四步的延伸。提示词"不允许笼统描述"会逼迫 AI 把 svchost 这种"一个进程托管一堆服务"的笼统项展开,把"内核-非分页池"这种"一堆驱动加总"的笼统项也展开。

svchost 拆解

Windows 有 90+ 个 svchost.exe 进程,每个托管多个服务。直接看进程列表只会看到一堆 svchost,不知道各自在干什么。

Get-CimInstance Win32_Service |
  Where-Object { $_.State -eq 'Running' } |
  Group-Object ProcessId |
  ForEach-Object {
    $pid = [int]$_.Name
    $proc = Get-Process -Id $pid -ErrorAction SilentlyContinue
    if ($proc -and $proc.Name -eq 'svchost') {
      $priv = [math]::Round($proc.PrivateMemorySize64/1MB, 1)
      $svcs = ($_.Group | ForEach-Object { $_.Name }) -join ', '
      "PID:{0}  Priv:{1}MB  [{2}]" -f $pid, $priv, $svcs
    }
  }

AI 执行后能看到每个 svchost 进程托管了哪些服务、各自占多少内存。比如某个 svchost 托管了 AppXSvc(UWP 应用部署) 占 60 MB,另一个托管 wuauserv(Windows 更新) 占 23 MB——这就把"578 MB 的 svchost"这个笼统项拆成了 90 个精确项。

内核驱动拆解

非分页池偏高(>500 MB)时,AI 会重点排查驱动:

Get-CimInstance Win32_SystemDriver |
  Where-Object { $_.State -eq 'Running' } |
  Sort-Object Name |
  ForEach-Object { "{0,-30} {1}" -f $_.Name, $_.DisplayName }

关键认知:驱动文件大小 ≠ 非分页池占用。驱动文件磁盘大小可能只有 60 MB,但运行时分配的数据结构、NDIS 缓冲池、连接跟踪表等远大于代码本身,非分页池可能达到 700+ MB。

AI 需要把 200+ 个驱动按功能组手动归类,重点关注以下"可卸载"类别:

驱动类别典型问题
虚拟机软件多套虚拟机软件同时装,每套十几个内核驱动
网络抓包新旧抓包驱动重复安装
网络加速器多个加速器驱动同时驻留,留一个即可
流量监控软件卸载了但驱动还在内核里
虚拟音频多个软件各自创建虚拟声卡驱动
远程控制多个远程工具的虚拟设备驱动

第六步:生成完整图表

AI 把前面采集的所有数据汇总成一张图表,按内存从大到小排列,每个项目标注精确作用。

图表结构

[纵向条形图,Y轴为项目名称,X轴为内存MB]

项目1: 进程组A (x10)     ████ 2270 MB  —— 精确作用描述
项目2: 进程组B (x9)       ███  1341 MB  —— 精确作用描述
项目3: 内核-非分页池       ███   711 MB  —— 233个驱动驻留
项目4: 进程组C (x14)      ██    410 MB  —— 精确作用描述
...
项目N: 内核-修改页列表     ░      96 MB  —— 待写盘脏页

颜色分类(帮助快速识别可清理项):

  • 🔴 红色:膨胀软件/手机互联(可清理)
  • 🟠 橙色:驱动/硬件(部分可优化)
  • 🟢 绿色:用户工具(保留)
  • 🔵 蓝色:Windows 系统(基本保留)
  • ⚪ 灰色:内核内存(不可见,重点排查对象)

方法论验证:AI 实测结果

按上述步骤让 AI 执行,实测结果:

口径数值
进程私有内存合计10385 MB
+ 内核非分页池711 MB
+ 内核分页池653 MB
+ 修改页列表96 MB
= 图表加总11845 MB
任务管理器"使用中”11310 MB
差距535 MB(< 1 GB ✓)

差距 535 MB 来自内核栈、系统 PTE、驱动镜像段等无法单独计量的杂项,属于正常范围。提示词的量化约束达成。


AI 帮你揪出的常见"隐藏"内存黑洞

按这套方法驱动 AI 排查,通常会找到以下人工很难发现的隐藏消耗:

  1. 非分页池偏高:正常 200-400 MB,装了大量第三方驱动可能到 700-800 MB。AI 会逐个查清驱动作用,标出哪些可卸载。
  2. 小程序/浏览器容器进程:每个小程序/视频号是独立 Chromium 进程,10 个进程吃 900 MB 很常见。AI 会把这些归到一组并指出"你可能没意识到的内存大户"。
  3. 显卡套件自动更新:重启后自动拉起 App + Overlay + Container,从 177 MB 暴涨到 1000+ MB。AI 会标出"重启后异常增长的项"。
  4. 手机互联全家桶:7-12 个进程偷偷自启,注册表自启删了它有自己的拉起机制。AI 会标出"注册表自启已禁用但仍在运行"的异常项。
  5. Windows 搜索索引:如果已装 Everything,Windows 自带的搜索索引(10+ 个进程)纯浪费 120+ MB。AI 会对比是否有功能重复的工具。
  6. 触摸键盘:非触摸屏设备上的 TabTip / TextInputHost 占 80 MB,有第三方输入法时可关。AI 会结合设备类型判断是否必要。

这些项的共同特点:单个不大,但加起来 1-2 GB,且都藏在任务管理器进程列表的"角落"里,人工一扫而过。AI 的优势就是不会漏。


提示词复用建议

这条提示词是可复用的。只要你的 AI 助手能执行 PowerShell 命令、读取文件、生成可视化图表(如 WorkBuddy),就可以直接用。

使用建议

  1. 原样使用:不要删减三个约束中的任何一个。每个约束都堵死了一条 AI 偷懒的退路,删了就会退化成"Top 20 进程表格"。
  2. 可追加上下文:在提示词前补充你的场景,比如"我要开 Minecraft 服务器,内存不够",AI 会针对性地判断哪些进程对你不重要。
  3. 可追问展开:如果 AI 给出的图表里某个组还是太笼统(比如"内核-非分页池 711 MB"),可以追加一句"把非分页池按驱动组展开,标注每个驱动的作用",AI 会继续往下拆。
  4. 可要求生成清理脚本:排查完追问"给我一个 PowerShell 脚本,禁用/改手动这些可清理项",AI 会生成可执行脚本,你用管理员权限运行即可。
  5. 可要求验证:执行清理后重启,再发一次同样的提示词,AI 会重新扫描并对比前后差异,验证清理效果。

排查命令速查(供 AI 或手动使用)

# 1. 系统内存概况(任务管理器"使用中"算法)
$os = Get-CimInstance Win32_OperatingSystem
"Used: $([math]::Round(($os.TotalVisibleMemorySize - $os.FreePhysicalMemory)/1KB, 0)) MB"

# 2. 进程私有内存分组(避免共享内存重复计算)
Get-Process | Group-Object Name |
  Sort-Object {($_.Group | Measure-Object PrivateMemorySize64 -Sum).Sum} -Descending |
  Select-Object -First 20 |
  ForEach-Object { "{0} x{1} {2:N1}MB" -f $_.Name, $_.Count, (($_.Group|Measure-Object PrivateMemorySize64 -Sum).Sum/1MB) }

# 3. 内核内存(任务管理器进程列表里看不到的部分)
Get-Counter '\Memory\Pool Nonpaged Bytes','\Memory\Pool Paged Bytes','\Memory\Modified Page List Bytes'

# 4. svchost 托管服务(展开"笼统的 svchost")
Get-CimInstance Win32_Service | Where-Object {$_.State -eq 'Running'} | Group-Object ProcessId

# 5. 运行中的内核驱动(展开"笼统的非分页池")
Get-CimInstance Win32_SystemDriver | Where-Object {$_.State -eq 'Running'} | Select Name, DisplayName

# 6. 进程详情(查证作用时用)
Get-CimInstance Win32_Process -Filter "ProcessId=$pid" | Select Name, Path, CommandLine

总结:AI + 好提示词 = 把枯燥的排查自动化

这套方法的核心不是某条 PowerShell 命令,而是用一条精心设计的提示词驱动 AI 完成全量、深度、不偷懒的排查

  1. 用 AI 比用人强:300+ 进程和 200+ 驱动挨个查证,人会失去耐心,AI 不会
  2. 关键在提示词的三个约束:差距量化、不排除任何项、禁止笼统描述——缺一不可
  3. 量化验证闭环:图表加总与任务管理器差距 < 1 GB 才算排查完成,AI 必须自我证明
  4. 可复用可追问:同一条提示词适用于任何 Windows 机器,可追问展开、生成脚本、验证效果

记住那条核心提示词,它不是花架子——三个约束共同保证了 AI 既不能跳过难归类项,也不能用笼统描述糊弄,更不能在中途收尾。这正是让 AI 产出深度排查结果的关键。

下次你的电脑内存又莫名其妙满了,别再手动翻任务管理器了——把那条提示词丢给 AI(如 WorkBuddy),让它帮你把每一 MB 内存的去向找出来。


本文基于 Windows 11 实测整理,适用于 Windows 10/11 系统内存排查。AI 工具以 WorkBuddy 为例,任何能执行系统命令、读取文件、生成可视化图表的 AI 助手均可适用。