首页 > 解决方案 > 如何计算内存缓存中文件的空间?

问题描述

我的目标是计算一个文件在 memorycache 中占用了多少空间,为此我做了一个方法,将数千个对象加载到内存中,并计算加载对象之前和之后的一些值的差异,这在文件添加之前:

Process p = Process.GetCurrentProcess();
long memoriaNonPaginata = p.NonpagedSystemMemorySize64;
long memoriaPaginata = p.PagedMemorySize64;
long memoriaDiSistema = p.PagedSystemMemorySize64;           
long ramIniziale = memoriaNonPaginata + memoriaPaginata + memoriaDiSistema;

我添加文件:

while (counter < numeroOggettiInCache)
{
    string k = counter.ToString();
    data = data + k.Substring(0,1);
    int position = r.Next(0, 28000);
    data = data.Remove(position, 1);                
    _cache.CreateEntry("cucu" + counter.ToString());
    _cache.Set("cucu" + counter.ToString(), data, opt);                
    counter++;
}    

稍后我将计算这些值:

Process p1 = Process.GetCurrentProcess();
long memoriaNonPaginataPost = p1.NonpagedSystemMemorySize64;
long memoriaPaginataPost = p1.PagedMemorySize64;
long memoriaDiSistemaPost = p1.PagedSystemMemorySize64;
long ramFinale = memoriaNonPaginataPost + memoriaPaginataPost + memoriaDiSistemaPost;

请问我使用的属性(NonpagedSystemMemorySize64,PagedMemorySize64,PagedSystemMemorySize64)是否正确并足以计算缓存文件使用了多少空间,谢谢,问候

标签: c#memorycache

解决方案


推荐阅读