!vmstat命令输出 - 私有内存区是什么意思?

时间:2011-09-12 14:33:11

标签: .net memory-leaks windbg

我的一个与原生dll交互的.NET进程正在抛出OutOfMemory异常。以下是!vmstat命令

> TYPE                      MINIMUM                      MAXIMUM                      AVERAGE  BLK COUNT                        TOTAL  
~~~~                      ~~~~~~~                      ~~~~~~~                      ~~~~~~~  ~~~~~~~~~                        ~~~~~  
Free:  
Small                          4K                          64K                          57K      4,545                     262,979K  
Medium                        68K                         960K                         425K        240                     102,000K  
Large                      1,084K                       1,084K                       1,084K          4                       4,336K  
Summary                        4K                       1,084K                          77K      4,789                     369,318K  

Reserve:  
Small                          4K                          60K                           6K        515                       3,255K  
Medium                        72K                       1,012K                         982K        863                     848,287K  
Large                      1,864K                      15,756K                       7,801K         11                      85,819K  
Summary                        4K                      15,756K                         674K      1,389                     937,363K  

Commit:  
Small                          4K                          64K                           6K      8,762                      55,669K  
Medium                        68K                       1,024K                         436K        455                     198,651K  
Large                      1,028K                      21,168K                       4,702K        114                     536,079K  
Summary                        4K                      21,168K                          84K      9,331                     790,401K  

**Private:**  
Small                          4K                          64K                           6K      3,267                      22,087K  
Medium                        68K                       1,024K                         945K      1,008                     953,539K  
Large                      1,864K                      19,008K                       6,245K         52                     324,775K  
**Summary                        4K                      19,008K                         300K      4,327                   1,300,402K**  

Mapped:  
Small                          4K                          64K                           4K      4,190                      18,728K  
Medium                        68K                       1,004K                         498K         21                      10,467K  
Large                      1,028K                      11,536K                       4,443K         10                      44,435K  
Summary                        4K                      11,536K                          17K      4,221                      73,632K  

Image:  
Small                          4K                          64K                           9K      1,820                      18,107K  
Medium                        68K                         980K                         286K        289                      82,931K  
Large                      1,032K                      21,168K                       4,010K         63                     252,687K  
Summary                        4K                      21,168K                         162K      2,172                     353,726K  

正如您所见,私有摘要总计为1.3GB。私人意味着什么?它是指本机内存还是托管内存区域?任何描述链接都会有所帮助。

1 个答案:

答案 0 :(得分:1)

“Private Bytes”是由此进程分配的内存,无法与其他进程共享。 (在.NET应用程序中,这将包括本机分配和托管堆。)

This SO answer可以很好地描述记忆的不同“类型”。