2013-01-17 20 views
1

運行後,「私人工作集」很大,我看到我的應用程序需要3.5GB的TaskMgr taskmgr神祕性Windbd內存使用的標籤:當內存被標記爲RegionUsageFree

我在WinDbg中看到的是一個小有點混亂:

0:022> !address -summary 
ProcessParametrs 0000000001b7ed70 in range 0000000001b7e000 0000000001b80000 
Environment 0000000001c0c970 in range 0000000001c0c000 0000000001c0e000 

-------------------- Usage SUMMARY -------------------------- 
    TotSize (  KB) Pct(Tots) Pct(Busy) Usage 
    1037fe000 (4251640) : 00.05% 87.22% : RegionUsageIsVAD 
    7fed67a5000 (8585059988) : 99.94% 00.00% : RegionUsageFree 
    7dd6000 ( 128856) : 00.00% 02.64% : RegionUsageImage 
    1900000 ( 25600) : 00.00% 00.53% : RegionUsageStack 
     32000 ( 200) : 00.00% 00.00% : RegionUsageTeb 
    950000 ( 9536) : 00.00% 00.20% : RegionUsageHeap 
    1bff4000 ( 458704) : 00.01% 09.41% : RegionUsagePageHeap 
     1000 (  4) : 00.00% 00.00% : RegionUsagePeb 
      0 (  0) : 00.00% 00.00% : RegionUsageProcessParametrs 
      0 (  0) : 00.00% 00.00% : RegionUsageEnvironmentBlock 
     Tot: 7ffffff0000 (8589934528 KB) Busy: 000000012984b000 (4874540 KB) 

-------------------- Type SUMMARY -------------------------- 
    TotSize (  KB) Pct(Tots) Usage 
    7fed67b5000 (8585060052) : 99.94% : <free> 
    7dd7000 ( 128860) : 00.00% : MEM_IMAGE 
    2e76000 ( 47576) : 00.00% : MEM_MAPPED 
    11ebee000 (4698040) : 00.05% : MEM_PRIVATE 

-------------------- State SUMMARY -------------------------- 
    TotSize (  KB) Pct(Tots) Usage 
    df283000 (3656204) : 00.04% : MEM_COMMIT 
    7fed67b5000 (8585060052) : 99.94% : MEM_FREE 
    4a5b8000 (1218272) : 00.01% : MEM_RESERVE 

因此,99.94%的內存是RegionUsageFree?

有人可以揭穿上述條款? RegionUsageFree意味着存儲器是free「d並且可以使用? Private Working Set是什麼意思?

如果免費,爲什麼在Private Working Set顯示?我應該擔心這個嗎?該內存可以(重新)使用?我在64位,OOM不是一個問題在這裏,在32它可能是什麼?我怎樣才能減少這種Private Working Set

PS:堆好看:

0:022> !heap -s 
LFH Key     : 0x0000005b29625009 
Termination on corruption : ENABLED 
      Heap  Flags Reserv Commit Virt Free List UCR Virt Lock Fast 
          (k)  (k) (k)  (k) length  blocks cont. heap 
------------------------------------------------------------------------------------- 
00000000000e0000 00000002 1024  8 1024  3  1  1 0  0  
0000000003c20000 00001002  512  8 512  3  1  1 0  0  
0000000004d40000 00001002  512  8 512  3  1  1 0  0  
00000000001e0000 00008000  64  8  64  5  1  1 0  0  
00000000070e0000 00001002  64  8  64  3  1  1 0  0  
0000000004d30000 00001002  64  8  64  3  1  1 0  0  
0000000007010000 00001002  512  8 512  3  1  1 0  0  
0000000004d00000 00001002  64  8  64  3  1  1 0  0  
000000000c8b0000 00001002  512  8 512  3  1  1 0  0  
00000000070b0000 00001002  64  8  64  3  1  1 0  0  
000000000ef00000 00001002  64  32  64  27  1  1 0  0  
0000000012180000 00001002  512  8 512  3  1  1 0  0  
000000000f630000 00001002  512  8 512  3  1  1 0  0  
0000000010490000 00001002  64  8  64  3  1  1 0  0  
00000000105b0000 00001002  512  8 512  3  1  1 0  0  
0000000012170000 00001002  64  8  64  3  1  1 0  0  
0000000039860000 00001002  512  8 512  3  1  1 0  0  
00000000397e0000 00001003  512  8 512  5  1  1 0 bad  
000000003ca30000 00001003  512  8 512  5  1  1 0 bad  
000000003dbc0000 00001003  512  8 512  5  1  1 0 bad  
0000000010900000 00001003  512  8 512  5  1  1 0 bad  
0000000012090000 00001003  512  8 512  5  1  1 0 bad  
0000000039730000 00001003  512  8 512  5  1  1 0 bad  
0000000010aa0000 00001003  512  8 512  5  1  1 0 bad  
00000000136b0000 00001002  64  8  64  3  1  1 0  0  
000000000eff0000 00001002  64  8  64  3  1  1 0  0  
0000000013590000 00001002  64  8  64  3  1  1 0  0  
0000000013850000 00001002  64  8  64  3  1  1 0  0  
000000000fd70000 00001002  64  8  64  3  1  1 0  0  
------------------------------------------------------------------------------------- 
+0

怎麼樣在TaskMgr查看選項卡我的意思是立即刷新或更新速度 – sergmat

+0

@sergmat沒有幫助。這不是刷新問題, – vlg789

+0

嘗試通過[vmmap](http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx)啓動應用程序,並觀察TaskMgr在動態中顯示的內存計數器。 – sergmat

回答

3

TaskMgr和WinDbg中都顯示正確的數據。詳細瞭解Private Working Set How to interpret Windows Task Manager? 99.94%的內存是RegionUsageFree,因爲x64在用戶模式下具有8TB大小的虛擬地址空間,並且幾乎所有內容都是空閒的並且可以使用。你不必減少工作集。 Windows爲您修剪工作集。 (雖然您可以在視圖菜單中使用VMMap空白工作集功能)欲瞭解更多信息,請參閱M. Russinovich博客Pushing the Limits of Windows: Virtual Memory