Тема: Як виміряти кількість використаної пам'яті
Потрібно виміряти кількість використаної пам'яті. (масив створений для прикладу, мова йде про загальний об'єм використаної пам'яті, під час виконання ділянки коду. array.length - не підійде)
Пробую розібратися з класом GC, якщо викликати GetTotalMemory з параметром ТРУ, це має запустити примусово гарбеч колектора і повернути кількість пам'яті
Були створенні змінні start_mem і used_mem_median, та присвоєно їм значення виконання функції GetTotalMemory, дізнавшись їх різницю, хочу отримати приблизну кількість пам'яті яка була використана.
Масив array спочатку створюється, і зразу ж анулюється (=null), також добавив дужки щоб він був "не в зоні видимості"
Примусово викликаю очищення GC.Collect(); а потім GC.WaitForPendingFinalizers(); і після цього бачу занадто великий результат
long start_mem = GC.GetTotalMemory(true);
{
int NN = 1000000;
int[] array = new int[NN];
for (int n = 0; n < NN; n++)
array[n] = new int();
array = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
double used_mem_median =
(GC.GetTotalMemory(true) - start_mem);
Console.WriteLine(
"Size = " +
used_mem_median
);
Console.ReadKey();
Як заміряти кількість використаної пам'яті?