1

実行後、TaskMgr でアプリケーションが 3.5Gb を使用していることがわかります タスクマネージャー

私が 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使用可能になったことを意味しますか? 手段と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      
-------------------------------------------------------------------------------------
4

1 に答える 1

3

TaskMgr と WinDbg はどちらも正しいデータを表示します。プライベート ワーキング セットの詳細については、「Windows タスク マネージャーを解釈する方法」を参照してください。 x64 はユーザー モードで 8TB サイズの仮想アドレス空間を持ち、そのほとんどすべてがフリーで使用できるため、メモリの 99.94% が RegionUsageFree です。ワーキング セットを減らす必要はありません。Windows がワーキング セットをトリミングします。(ただし、[表示] メニューでVMMap の空のワーキング セット機能を使用できます) 詳細については、M. Russinovich のブログ、「Windows の限界に挑む: 仮想メモリ」を参照してください。

于 2013-01-17T13:34:55.740 に答える