سفارش تبلیغ
صبا ویژن

91/2/26
11:9 صبح

توضیحاتی در رابطه با سی شارپ

بدست داوود طالبی اذر در دسته

مقالات سی شارپ » اندازه گیری حافضه ی مصرف شده توسط یک برنامه ی دات نت

 

 

برای محاسبه ی حافظه ی مصرف شده به وسیله ی برنامه های .NET دو راه وجود دارد، روش اول استفاده از GC و روش دوم استفاده از System.Diagnostics می باشد.

 

 

بازیــــابـی حافظـــه ی مصـرف شـده با استـفاده از کـلاس GC :

کلاس GC در دات نت فریم ورک شامل متد های سودمند، زیادی است شامل متد GetTotalMemory() که مقدار حافظه ی زباله روب مربوط به برنامه ی شما را برمی گرداند.

 

long memAvailable = GC.GetTotalMemory(false);
Console.WriteLine(“Before allocations: {0:N0}”, memAvailable);

int allocSizeObj = 40000000;
byte[] bigArrayObj = new byte[allocSizeObj];

memAvailable= GC.GetTotalMemory(false);
Console.WriteLine(“After allocations: {0:N0}”, memAvailable);

خروجی کد بالا:

 

Before allocations: 651,064
After allocations: 40,690,080

برای خواندن متن کامل بر روی ادامه ی مطلب کلیک کنید.

 

بــازیابـی حــــافـظـه ی مــصرف شـده بـا اسـتــفاده از System.Diagnostics :

همجنین با استفاده از کلاس System.Diagnostics میتوانید عملیات بالا از OS درخواست و گزارش تهیه کنید.

 

Process procObj = Process.GetCurrentProcess();
Console.WriteLine(“Process Info: “+Environment.NewLine+
“App"s Private Memory Size : {0:N0}”+Environment.NewLine +
“App"s Virtual Memory Size : {1:N0}” + Environment.NewLine +
“App"s Working Set Size: {2:N0}” + Environment.NewLine +
“App"s Paged Memory Size: {3:N0}” + Environment.NewLine +
“App"s Paged System Memory Size: {4:N0}” + Environment.NewLine +
“App"s Non-paged System Memory Size: {5:N0}” + Environment.NewLine,
procObj.PrivateMemorySize64,
procObj.VirtualMemorySize64,
procObj.WorkingSet64,
procObj.PagedMemorySize64,
procObj.PagedSystemMemorySize64,
procObj.NonpagedSystemMemorySize64 );

خروجی :

Private Memory Size: 75,935,744
Virtual Memory Size: 590,348,288
Working Set Size: 29,364,224
Paged Memory Size: 75,935,744
Paged System Memory Size: 317,152
Non-paged System Memory Size: 37,388

این اعداد مستقیما مشهود نیستند برای درک بهتر میتواندی به یک کتاب خوب در باره ی سیستم عامل مراجعه کنید، به بخش حافظه ی مجازی چگونه کار میکند مراجعه کنید.