c# - Process memory does not increase after creating an object? -


i trying understand how memory-properties workingset64, pagedmemorysize64 , on. have written small programm shall debug memory consumption own process.

there 3 classes:

a dto persist memory dump:

public class processdto {     public processdto(long workingset64, long privatememorysize64, long pagedsystemmemorysize64, long pagedmemorysize64)     {         workingset64 = workingset64;         privatememorysize64 = privatememorysize64;         pagedsystemmemorysize64 = pagedsystemmemorysize64;         pagedmemorysize64 = pagedmemorysize64;     }      public long workingset64 { get; private set; }     public long privatememorysize64 { get; private set; }     public long pagedsystemmemorysize64 { get; private set; }     public long pagedmemorysize64 { get; private set; } } 

a process reader, first forces gc run , creates memory dump:

internal class processdumper {     public processdto getprocessdump(process process)     {         gc.collect();         gc.waitforpendingfinalizers();          var workingset64 = process.workingset64;         var privatememorysize64 = process.privatememorysize64;         var pagedsystemmemorysize64 = process.pagedsystemmemorysize64;         var pagedmemorysize64 = process.pagedmemorysize64;          var result = new processdto(workingset64, privatememorysize64, pagedsystemmemorysize64, pagedmemorysize64);         return result;     } } 

and console application:

static void main(string[] args)     {         var processdumper = new processdumper();         var process = process.getcurrentprocess();         var before = processdumper.getprocessdump(process);         console.writeline("[ws64] before: {0} bytes", before.workingset64);         console.writeline("[priv64] before: {0} bytes", before.privatememorysize64);         console.writeline("[pms64] before: {0} bytes", before.pagedmemorysize64);         console.writeline("[psms64] before: {0} bytes", before.pagedsystemmemorysize64);          console.writeline();         var foo = new byte[]         {             0x10, 0x99, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x10,             0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,         };         var max = foo.max();         console.writeline("just object... max {0}", max);          var after = processdumper.getprocessdump(process);          var min = foo.min();         console.writeline("just object... min {0}", min);          console.writeline();         console.writeline("[ws64] after:  {0} bytes", after.workingset64);         console.writeline("[priv64] after:  {0} bytes", after.privatememorysize64);         console.writeline("[pms64] after:  {0} bytes", after.pagedmemorysize64);         console.writeline("[psms64] after:  {0} bytes", after.pagedsystemmemorysize64);          console.writeline();         console.writeline("[ws64] diff:   {0} bytes", (after.workingset64 - before.workingset64));         console.writeline("[priv64] diff:   {0} bytes", (after.privatememorysize64 - before.privatememorysize64));         console.writeline("[pms64] diff:   {0} bytes", (after.pagedmemorysize64 - before.pagedmemorysize64));         console.writeline("[psms64] diff:   {0} bytes", (after.pagedsystemmemorysize64 - before.pagedsystemmemorysize64));          console.readline();     } 

now fun part begins. assumed, memory increased between before , after - memory consumption always same.

[ws64] diff:   0 bytes [priv64] diff:   0 bytes [pms64] diff:   0 bytes [psms64] diff:   0 bytes 

what missing here? have tried move output of before, after , diff bottom kept in memory while dumping, nevertheless seems have no change - diff zero.

you missing not counting used bytes in partion of reserved memory, size of reserved memory. if reserved memory (in example privatememorysize64) in used, runtime allocate more memory set.


Comments

Popular posts from this blog

python - Subclassed QStyledItemDelegate ignores Stylesheet -

java - HttpClient 3.1 Connection pooling vs HttpClient 4.3.2 -

SQL: Divide the sum of values in one table with the count of rows in another -