none
LOH fragmentation. dumpheap doesn't show all free blocks RRS feed

  • Question

  • using (var ms = new MemoryStream())
    {
       while (true)
       {
          ms.Capacity = batchSize * iteration;
          list.Add(new byte[batchSize * iteration]);
          GC.Collect(2);
          iteration++;
       }
    }

    Here I was going to reproduce fragmented LOH. I constantly checked free blocks of memory via immediate window (!dumpheap -type Free). Till 5th I could see new free blocks ('cause GC collected memory which was allocated by memorystream before extending). From 5th iteration I couldn't see freeblocks. Also I didn't see these blocks anywhere. But I still can get information about these blocks over !do <adress>. Also there are no links to these objects.

    Cam anyone explain whats's happened.

    Friday, December 28, 2012 3:39 PM

All replies

  • Hi Alexander,

    Welcome to the MSDN Forum.

    I am trying to involving some other one into this case, it will take times, wait it patiently, please.

    If this issue is urgent,

    it is recommended that you contact Microsoft Customer Spport Services(CSS) via telephone so that a dedicated Support Professional can assist you in a more efficient manner. Please be advised that contacting phone support will be a charged call. 

    to obtain the phone numbers for specific technology request please take a look at the web site listed below.

    http://support.microsoft.com/default.aspx?scid=fh;EN-US;PHONENUMBERS  

    If you are outside the US please see http://support.microsoft.com for regional support phone numbers.

    Thank you.

    Best regards,


    Mike Feng
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Monday, December 31, 2012 2:31 AM
    Moderator
  • Hi,

    I cannot reproduce the issue.

    Can you please paste the output of the 1<sup>st</sup>, 5<sup>th</sup>, 6/7/8<sup>th</sup> !dumphelp -type Free

    Also, please let us know what is the VS version you are using?

    Thanks!


    Shaleen Thapa

    Monday, December 31, 2012 7:58 PM
  • Hi!

    I've tried to reproduce this issue on VS 2010 SP1 and on VS 2012. In my example batchSize = 1024*1024;

    Here outputs:

    end of first iteration:

    !dumpheap -type Free
    PDB symbol for clr.dll not loaded
     Address       MT     Size
    02b71000 0066e6e0       12 Free
    02b7100c 0066e6e0       12 Free
    02b71018 0066e6e0       12 Free
    02b7149c 0066e6e0      172 Free
    02b71564 0066e6e0      288 Free
    02b716c0 0066e6e0      164 Free
    02b7188c 0066e6e0      152 Free
    02b73490 0066e6e0       24 Free
    02b73628 0066e6e0     3180 Free
    02b75358 0066e6e0       64 Free
    02b75c68 0066e6e0      124 Free
    02b75e98 0066e6e0      156 Free
    02b762a4 0066e6e0      560 Free
    02b76550 0066e6e0       88 Free
    02b765c0 0066e6e0      116 Free
    02b76644 0066e6e0       36 Free
    02b76794 0066e6e0       28 Free
    02b76908 0066e6e0      100 Free
    02b769ec 0066e6e0      100 Free
    02b76b00 0066e6e0      336 Free
    02b76ce4 0066e6e0     1196 Free
    02b795cc 0066e6e0      196 Free
    02b79760 0066e6e0       60 Free
    02b79864 0066e6e0      944 Free
    02b79c38 0066e6e0      184 Free
    02b79e30 0066e6e0       88 Free
    02b79e94 0066e6e0       28 Free
    02b79ec4 0066e6e0       36 Free
    02b79f94 0066e6e0       28 Free
    02b7a004 0066e6e0       36 Free
    02b7a040 0066e6e0       28 Free
    02b7a06c 0066e6e0       28 Free
    02b7a130 0066e6e0       44 Free
    02b7a1bc 0066e6e0      228 Free
    02b7a2b0 0066e6e0       24 Free
    02b7a2f8 0066e6e0      388 Free
    02b7a664 0066e6e0      220 Free
    02b7a790 0066e6e0       48 Free
    02b7a7d0 0066e6e0     2616 Free
    02b7b2ec 0066e6e0       56 Free
    02b7b3fc 0066e6e0       80 Free
    02b7b484 0066e6e0      248 Free
    02b7b724 0066e6e0       28 Free
    02b7b79c 0066e6e0       12 Free
    02b7b7c8 0066e6e0       12 Free
    03b71000 0066e6e0       16 Free
    03b72010 0066e6e0       16 Free
    03b72230 0066e6e0       16 Free
    03b73240 0066e6e0       16 Free
    03c73260 0066e6e0       16 Free
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    0066e6e0       50        12660      Free
    Total 50 objects

    end of 5th iteration:

    !dumpheap -type Free
     Address       MT     Size
    02b71000 0066e6e0       12 Free
    02b7100c 0066e6e0       24 Free
    02b7149c 0066e6e0      172 Free
    02b71564 0066e6e0      288 Free
    02b716c0 0066e6e0      164 Free
    02b7188c 0066e6e0      152 Free
    02b73490 0066e6e0       24 Free
    02b73628 0066e6e0     3180 Free
    02b75358 0066e6e0       64 Free
    02b75c68 0066e6e0      124 Free
    02b75e98 0066e6e0      156 Free
    02b762a4 0066e6e0      560 Free
    02b76550 0066e6e0       88 Free
    02b765c0 0066e6e0      116 Free
    02b76644 0066e6e0       36 Free
    02b76794 0066e6e0       28 Free
    02b76908 0066e6e0      100 Free
    02b769ec 0066e6e0      100 Free
    02b76b00 0066e6e0      336 Free
    02b76ce4 0066e6e0     1196 Free
    02b795cc 0066e6e0      196 Free
    02b79760 0066e6e0       60 Free
    02b79864 0066e6e0      944 Free
    02b79c38 0066e6e0      184 Free
    02b79e30 0066e6e0       88 Free
    02b79e94 0066e6e0       28 Free
    02b79ec4 0066e6e0       36 Free
    02b79f94 0066e6e0       28 Free
    02b7a004 0066e6e0       36 Free
    02b7a040 0066e6e0       28 Free
    02b7a06c 0066e6e0       28 Free
    02b7a130 0066e6e0       44 Free
    02b7a1bc 0066e6e0      228 Free
    02b7a2b0 0066e6e0       24 Free
    02b7a2f8 0066e6e0      388 Free
    02b7a664 0066e6e0      220 Free
    02b7a790 0066e6e0       48 Free
    02b7a7d0 0066e6e0     2616 Free
    02b7b2ec 0066e6e0       56 Free
    02b7b3fc 0066e6e0       80 Free
    02b7b484 0066e6e0      248 Free
    02b7b724 0066e6e0       28 Free
    02b7b79c 0066e6e0       12 Free
    02b7b7a8 0066e6e0       56 Free
    02b7b810 0066e6e0       12 Free
    03b71000 0066e6e0       16 Free
    03b72010 0066e6e0       16 Free
    03b72230 0066e6e0       16 Free
    03b73240 0066e6e0  1048624 Free
    03d73280 0066e6e0  2097184 Free
    041732b0 0066e6e0  3145760 Free
    056d1000 0066e6e0  4194336 Free
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    0066e6e0       52     10498588      Free
    Total 52 objects

    end of 6th iteration:

    !dumpheap -type Free
     Address       MT     Size
    02b71000 0066e6e0       12 Free
    02b7100c 0066e6e0       24 Free
    02b7149c 0066e6e0      172 Free
    02b71564 0066e6e0      288 Free
    02b716c0 0066e6e0      164 Free
    02b7188c 0066e6e0      152 Free
    02b73490 0066e6e0       24 Free
    02b73628 0066e6e0     3180 Free
    02b75358 0066e6e0       64 Free
    02b75c68 0066e6e0      124 Free
    02b75e98 0066e6e0      156 Free
    02b762a4 0066e6e0      560 Free
    02b76550 0066e6e0       88 Free
    02b765c0 0066e6e0      116 Free
    02b76644 0066e6e0       36 Free
    02b76794 0066e6e0       28 Free
    02b76908 0066e6e0      100 Free
    02b769ec 0066e6e0      100 Free
    02b76b00 0066e6e0      336 Free
    02b76ce4 0066e6e0     1196 Free
    02b795cc 0066e6e0      196 Free
    02b79760 0066e6e0       60 Free
    02b79864 0066e6e0      944 Free
    02b79c38 0066e6e0      184 Free
    02b79e30 0066e6e0       88 Free
    02b79e94 0066e6e0       28 Free
    02b79ec4 0066e6e0       36 Free
    02b79f94 0066e6e0       28 Free
    02b7a004 0066e6e0       36 Free
    02b7a040 0066e6e0       28 Free
    02b7a06c 0066e6e0       28 Free
    02b7a130 0066e6e0       44 Free
    02b7a1bc 0066e6e0      228 Free
    02b7a2b0 0066e6e0       24 Free
    02b7a2f8 0066e6e0      388 Free
    02b7a664 0066e6e0      220 Free
    02b7a790 0066e6e0       48 Free
    02b7a7d0 0066e6e0     2616 Free
    02b7b2ec 0066e6e0       56 Free
    02b7b3fc 0066e6e0       80 Free
    02b7b484 0066e6e0      248 Free
    02b7b724 0066e6e0       28 Free
    02b7b79c 0066e6e0       68 Free
    02b7b810 0066e6e0       12 Free
    02b7b81c 0066e6e0       12 Free
    03b71000 0066e6e0       16 Free
    03b72010 0066e6e0       16 Free
    03b72230 0066e6e0       16 Free
    03b73240 0066e6e0  1048624 Free
    03d73280 0066e6e0  2097184 Free
    041732b0 0066e6e0  3145760 Free
    056d1000 0066e6e0  4194336 Free
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    0066e6e0       52     10498600      Free
    Total 52 objects

    end of 7th iteration:

     Address       MT     Size
    02b71000 0066e6e0       12 Free
    02b7100c 0066e6e0       24 Free
    02b7149c 0066e6e0      172 Free
    02b71564 0066e6e0      288 Free
    02b716c0 0066e6e0      164 Free
    02b7188c 0066e6e0      152 Free
    02b73490 0066e6e0       24 Free
    02b73628 0066e6e0     3180 Free
    02b75358 0066e6e0       64 Free
    02b75c68 0066e6e0      124 Free
    02b75e98 0066e6e0      156 Free
    02b762a4 0066e6e0      560 Free
    02b76550 0066e6e0       88 Free
    02b765c0 0066e6e0      116 Free
    02b76644 0066e6e0       36 Free
    02b76794 0066e6e0       28 Free
    02b76908 0066e6e0      100 Free
    02b769ec 0066e6e0      100 Free
    02b76b00 0066e6e0      336 Free
    02b76ce4 0066e6e0     1196 Free
    02b795cc 0066e6e0      196 Free
    02b79760 0066e6e0       60 Free
    02b79864 0066e6e0      944 Free
    02b79c38 0066e6e0      184 Free
    02b79e30 0066e6e0       88 Free
    02b79e94 0066e6e0       28 Free
    02b79ec4 0066e6e0       36 Free
    02b79f94 0066e6e0       28 Free
    02b7a004 0066e6e0       36 Free
    02b7a040 0066e6e0       28 Free
    02b7a06c 0066e6e0       28 Free
    02b7a130 0066e6e0       44 Free
    02b7a1bc 0066e6e0      228 Free
    02b7a2b0 0066e6e0       24 Free
    02b7a2f8 0066e6e0      388 Free
    02b7a664 0066e6e0      220 Free
    02b7a790 0066e6e0       48 Free
    02b7a7d0 0066e6e0     2616 Free
    02b7b2ec 0066e6e0       56 Free
    02b7b3fc 0066e6e0       80 Free
    02b7b484 0066e6e0      248 Free
    02b7b724 0066e6e0       28 Free
    02b7b79c 0066e6e0       68 Free
    02b7b810 0066e6e0       12 Free
    02b7b81c 0066e6e0       12 Free
    03b71000 0066e6e0       16 Free
    03b72010 0066e6e0       16 Free
    03b72230 0066e6e0       16 Free
    03b73240 0066e6e0  1048624 Free
    03d73280 0066e6e0  2097184 Free
    041732b0 0066e6e0  3145760 Free
    056d1000 0066e6e0  4194336 Free
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    0066e6e0       52     10498600      Free
    Total 52 objects

    end of 8th iteration:

    Address       MT     Size
    02b71000 0066e6e0       12 Free
    02b7100c 0066e6e0       24 Free
    02b7149c 0066e6e0      172 Free
    02b71564 0066e6e0      288 Free
    02b716c0 0066e6e0      164 Free
    02b7188c 0066e6e0      152 Free
    02b73490 0066e6e0       24 Free
    02b73628 0066e6e0     3180 Free
    02b75358 0066e6e0       64 Free
    02b75c68 0066e6e0      124 Free
    02b75e98 0066e6e0      156 Free
    02b762a4 0066e6e0      560 Free
    02b76550 0066e6e0       88 Free
    02b765c0 0066e6e0      116 Free
    02b76644 0066e6e0       36 Free
    02b76794 0066e6e0       28 Free
    02b76908 0066e6e0      100 Free
    02b769ec 0066e6e0      100 Free
    02b76b00 0066e6e0      336 Free
    02b76ce4 0066e6e0     1196 Free
    02b795cc 0066e6e0      196 Free
    02b79760 0066e6e0       60 Free
    02b79864 0066e6e0      944 Free
    02b79c38 0066e6e0      184 Free
    02b79e30 0066e6e0       88 Free
    02b79e94 0066e6e0       28 Free
    02b79ec4 0066e6e0       36 Free
    02b79f94 0066e6e0       28 Free
    02b7a004 0066e6e0       36 Free
    02b7a040 0066e6e0       28 Free
    02b7a06c 0066e6e0       28 Free
    02b7a130 0066e6e0       44 Free
    02b7a1bc 0066e6e0      228 Free
    02b7a2b0 0066e6e0       24 Free
    02b7a2f8 0066e6e0      388 Free
    02b7a664 0066e6e0      220 Free
    02b7a790 0066e6e0       48 Free
    02b7a7d0 0066e6e0     2616 Free
    02b7b2ec 0066e6e0       56 Free
    02b7b3fc 0066e6e0       80 Free
    02b7b484 0066e6e0      248 Free
    02b7b724 0066e6e0       28 Free
    02b7b79c 0066e6e0       68 Free
    02b7b810 0066e6e0       12 Free
    02b7b81c 0066e6e0       12 Free
    03b71000 0066e6e0       16 Free
    03b72010 0066e6e0       16 Free
    03b72230 0066e6e0       16 Free
    03b73240 0066e6e0  1048624 Free
    03d73280 0066e6e0  2097184 Free
    041732b0 0066e6e0  3145760 Free
    056d1000 0066e6e0  4194336 Free
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    0066e6e0       52     10498600      Free
    Total 52 objects

    dumpheap LOH (free block exists till 5th iteration only):

    Address       MT     Size
    03b71000 0066e6e0       16 Free
    03b71010 54766d84     4096     
    03b72010 0066e6e0       16 Free
    03b72020 54766d84      528     
    03b72230 0066e6e0       16 Free
    03b72240 54766d84     4096     
    03b73240 0066e6e0  1048624 Free
    03c73270 547b4aa0  1048592     
    03d73280 0066e6e0  2097184 Free
    03f732a0 547b4aa0  2097168     
    041732b0 0066e6e0  3145760 Free
    044732d0 547b4aa0  3145744     
    056d1000 0066e6e0  4194336 Free
    05ad1020 547b4aa0  4194320     
    066d1000 547b4aa0  5242896     
    06bd1010 547b4aa0  8388624     
    07921000 547b4aa0  6291472     
    07f21010 547b4aa0  7340048     
    08921000 547b4aa0  8388624     
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    54766d84        3         8720 System.Object[]
    0066e6e0        7     10485952      Free
    547b4aa0        9     46137488 System.Byte[]
    Total 19 objects

    dumpheap LOH for next iteration (free block exists till 5th iteration only):

    Address       MT     Size
    03b71000 0066e6e0       16 Free
    03b71010 54766d84     4096     
    03b72010 0066e6e0       16 Free
    03b72020 54766d84      528     
    03b72230 0066e6e0       16 Free
    03b72240 54766d84     4096     
    03b73240 0066e6e0  1048624 Free
    03c73270 547b4aa0  1048592     
    03d73280 0066e6e0  2097184 Free
    03f732a0 547b4aa0  2097168     
    041732b0 0066e6e0  3145760 Free
    044732d0 547b4aa0  3145744     
    056d1000 0066e6e0  4194336 Free
    05ad1020 547b4aa0  4194320     
    066d1000 547b4aa0  5242896     
    07921000 547b4aa0  6291472     
    07f21010 547b4aa0  7340048     
    08921000 547b4aa0  8388624     
    09921000 547b4aa0  9437200     
    0a921000 547b4aa0  9437200     
    total 0 objects
    Statistics:
          MT    Count    TotalSize Class Name
    54766d84        3         8720 System.Object[]
    0066e6e0        7     10485952      Free
    547b4aa0       10     56623264 System.Byte[]
    Total 20 objects


    06bd1010 547b4aa0  8388624     Should be Free, but I didn't see it.

    !GCRoot 06bd1010
    Note: Roots found on stacks may be false positives. Run "!help gcroot" for
    more info.
    Scan Thread 10632 OSTHread 2988
    Scan Thread 3596 OSTHread e0c

    !do 06bd1010
    Name:        System.Byte[]
    MethodTable: 547b4aa0
    EEClass:     544eaf3c
    Size:        8388620(0x80000c) bytes
    Array:       Rank 1, Number of elements 8388608, Type Byte
    Element Type:System.Byte
    Content:     ................................................................................................................................
    Fields:
    None

    Why does object still exeist?

    Monday, January 7, 2013 9:19 AM