这两者的大部分列都是一致的,包括pid、threads、handles等,但在内存方面却有出入,对比如下:
ProcExp | TaskMgr | Sample.exe |
---|---|---|
Private Delta Bytes | 工作集增量 | 0或±几十kb |
Working Set | 工作集 | 419M |
Peak Working Set | 峰值工作集 | 453M |
Private Bytes | 提交大小 | 410M |
Peak Private Bytes | 峰值提交大小 × | 417M |
WS Private Bytes | 专用工作集 | 332M |
WS Shareable Bytes | 可共享专用工作集 × | 87M |
WS Shared Bytes | 已共享专用工作集 × | 65M |
有几点值得注意:
- TaskMgr里没有打叉 × 的列
- 可以看到在ProcExp里主要的概念有3个:[Working Set]、[Private Bytes]、[WS Private Bytes],对应到TaskMgr里分别是[工作集]、[提交大小]、[专用工作集],不过TaskMgr有些列混用了这几个说法。
- [Working Set] = [WS Private Bytes] + [WS Shareable Bytes],[WS Private Bytes]是进程自己私有的dll,[WS Shareable Bytes]是进程间可共享的dll,比如GAC里的,加到一起就是每个进程的Working Set
- [Private Bytes] vs. [WS Private Bytes]可以见这篇,虽然我也没看太懂,不过就是一些不同的内存计数手法。实际工作中,基本上高内存的话,这些都会高,目前还不用过于深究。