c# - 如何计算内存缓存中文件的空间?
问题描述
我的目标是计算一个文件在 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)是否正确并足以计算缓存文件使用了多少空间,谢谢,问候
解决方案
推荐阅读
- google-cloud-firestore - Firebase 云功能在跳转到下一个之前不等待 forEach 完成
- django - 将多个 BooleanField 格式化为单个 Select 小部件
- python - 同时训练多个 tensorflow 模型
- javascript - 使用 MEAN 堆栈刷新用户登录中的访问令牌
- jenkins - 在 CheckMarx 扫描中排除文件夹
- javascript - 如何删除从jquery中选择的所有选定选项中选择的属性
- docker - 在 docker-compose build 之前调用 docker-compose down 会改变什么吗?
- r - 函数仅评估 R 数据表的第一行
- java - Android Java 获取所有正在运行的应用程序,即使它们在后台运行
- java - 如何从图库中选择多个图像并使用 android 代码在单个活动中显示它们?