static void Main()
{
Process proc = Process.GetCurrentProcess();
long initialMemory = proc.PrivateMemorySize64;
Console.WriteLine(initialMemory.ToString("N0"));
long threshold = initialMemory*100;
for (;;)
{
for (int i = 0; i < 100; i++)
{
var smth = new Something();
smth.DoSomething();
Console.Write("+");
//Thread.Sleep(20);
}
Console.Write(" ");
proc.Refresh();
long currentMemory = proc.PrivateMemorySize64;
Console.Write("{0:N0} ", currentMemory);
if (currentMemory > initialMemory && currentMemory - initialMemory > threshold)
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Console.Write("!");
}
Console.WriteLine();
Thread.Sleep(500);
}
}