public static void TestWithoutFlyweightFactory(int n) { var items = new List <ImageFlyweight>(); var timer = new Stopwatch(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); var memoryBefore = System.Diagnostics.Process.GetCurrentProcess().VirtualMemorySize64; timer.Start(); for (int i = 0; i < n; i++) { //Console.WriteLine("without " + i + ":::" + Process.GetCurrentProcess().VirtualMemorySize64); var newPlayerObject = new PlayerFlyweight(ImageResources.PlayerImage); var newPlatformObject = new PlayerFlyweight(ImageResources.PlatformImage); newPlayerObject.drawUnit(new Tuple <int, int>(center, center), size, size); newPlatformObject.drawUnit(new Tuple <int, int>(center, center), size, size); items.Add(newPlayerObject); items.Add(newPlatformObject); } timer.Stop(); var memoryAfter = System.Diagnostics.Process.GetCurrentProcess().VirtualMemorySize64; var memoryDiff = (memoryAfter - memoryBefore) / 1024 / 1024; var duration = timer.ElapsedMilliseconds; PrintResults("Test WITHOUT flyweight design pattern", n, memoryDiff.ToString(), duration.ToString()); }