关于C#的Process的内存相关属性解读
2013-02-05 16:40
232 查看
查看msdn或定位到Process类,会看他与内存相关的属性有20个,为了快速找到自己想要的属性,这里进行一下解读:
首先要明白几个概念:虚拟内存,分页文件,分页内存,物理内存,工作集,专用内存(私有内存,不能共享的内存)
虽然有这么多叫法,但只是叫法不一样。把虚拟内存,分页文件,分页内存都看成虚拟内存就可以了(个人理解)。
另外注意几个技巧,第一:Peak是峰值的意思,以Peak开头的属性是使用时的内存量,其他的都是分配的内存;
第二:以64结尾的属性返回long类型,否则返回int类型(int类型的属性已经过时);第三:两个返回类型稍微特殊的是MaxWorkingSet和MinWorkingSt,返回IntPtr代表字节数。
那么20个属性减去2个特殊的,其他的都有一个以64结尾的含义一样的属性,那么现在意义不一样的属性共有11个,只需要理解这11个即可。
将这11个属性分为四类,
第一,MemorySize(可能包含分页内存)
PagedMemorySize(64) 原话:由可写入到虚拟内存页面文件的关联进程分配的内存量(以字节为单位)
PeakPagedMemorySize(64) 原话:自启动关联的进程以来为关联进程分配的虚拟内存分页文件中的最大内存量(以字节为单位)。
PrivateMemorySize(64) 原话:为关联的进程分配的不能与其他进程共享的内存量(以字节为单位)。
第二,SystemMemorySize(系统内存,是不是可以理解系统为硬件保留的内存)
PagedSystemMemorySize(64) 原话:系统已为可写入到虚拟内存页面文件的关联进程分配的内存量(以字节为单位)。
NonpagedSystemMemorySize(64) 原话:为关联的进程分配的、不能写入虚拟内存分页文件中的系统内存量(以字节为单位)。
第三,VirtuaMemorySize(虚拟内存,分页内存)
VirtualMemorySize(64) 原话:为关联的进程分配的虚拟内存量(以字节为单位)。
PeakVirtualMEmorySize(64) 原话:关联进程请求的最大虚拟内存量(以字节为单位)。
第四,WokingSet(工作集,物理内存)
MaxWorkingSet 原话:内存中允许的进程的最大工作集大小(以字节为单位)。
MinWorkingSet 原话:内存中进程所需的最小工作集大小(以字节为单位)。
PeakWorkingSet(64) 原话:自启动关联的进程以来为关联的进程分配的最大物理内存量(以字节为单位)。
WorkingSet(64) 原话:关联进程当前使用的物理内存总量(以字节为单位)。
根据动态刷新的效果来看,实时自动调整的内存量有三个值:
可分页内存量,私有内存量,工作集
首先要明白几个概念:虚拟内存,分页文件,分页内存,物理内存,工作集,专用内存(私有内存,不能共享的内存)
虽然有这么多叫法,但只是叫法不一样。把虚拟内存,分页文件,分页内存都看成虚拟内存就可以了(个人理解)。
另外注意几个技巧,第一:Peak是峰值的意思,以Peak开头的属性是使用时的内存量,其他的都是分配的内存;
第二:以64结尾的属性返回long类型,否则返回int类型(int类型的属性已经过时);第三:两个返回类型稍微特殊的是MaxWorkingSet和MinWorkingSt,返回IntPtr代表字节数。
那么20个属性减去2个特殊的,其他的都有一个以64结尾的含义一样的属性,那么现在意义不一样的属性共有11个,只需要理解这11个即可。
将这11个属性分为四类,
第一,MemorySize(可能包含分页内存)
PagedMemorySize(64) 原话:由可写入到虚拟内存页面文件的关联进程分配的内存量(以字节为单位)
PeakPagedMemorySize(64) 原话:自启动关联的进程以来为关联进程分配的虚拟内存分页文件中的最大内存量(以字节为单位)。
PrivateMemorySize(64) 原话:为关联的进程分配的不能与其他进程共享的内存量(以字节为单位)。
第二,SystemMemorySize(系统内存,是不是可以理解系统为硬件保留的内存)
PagedSystemMemorySize(64) 原话:系统已为可写入到虚拟内存页面文件的关联进程分配的内存量(以字节为单位)。
NonpagedSystemMemorySize(64) 原话:为关联的进程分配的、不能写入虚拟内存分页文件中的系统内存量(以字节为单位)。
第三,VirtuaMemorySize(虚拟内存,分页内存)
VirtualMemorySize(64) 原话:为关联的进程分配的虚拟内存量(以字节为单位)。
PeakVirtualMEmorySize(64) 原话:关联进程请求的最大虚拟内存量(以字节为单位)。
第四,WokingSet(工作集,物理内存)
MaxWorkingSet 原话:内存中允许的进程的最大工作集大小(以字节为单位)。
MinWorkingSet 原话:内存中进程所需的最小工作集大小(以字节为单位)。
PeakWorkingSet(64) 原话:自启动关联的进程以来为关联的进程分配的最大物理内存量(以字节为单位)。
WorkingSet(64) 原话:关联进程当前使用的物理内存总量(以字节为单位)。
根据动态刷新的效果来看,实时自动调整的内存量有三个值:
可分页内存量,私有内存量,工作集
相关文章推荐
- 【c#、Red5】关于c#如何使用FluorineFx与Red5通信及相关
- 关于CoordinatorLayout展开与折叠相关属性
- C#:LinkButton 控件 绑定数据时候 相关属性的注解
- 关于c++检测内存泄露相关知识(windows程序调试)
- 关于c# 泛型List集合对象的用法及相关操作
- C#关于域、属性、事件、索引指示器介绍
- C#中关于Gridview的一些属性(一)
- 关于C#资源文件的相关操作
- 关于c# 中读取系统内存大小的问题。
- 关于五险一金缴纳相关政策及知识解读
- C# Winform应用程序占用内存较大解决方法整理(转)-- SetProcessWorkingSetSize
- C#WinFrom开发系列之关于动态添加生成和删除控件的相关知识
- 关于 Visual Studio C#工程属性的Build Events中如何根据编译平台分别设置的解答
- 与IDE相关的Attribute属性(C#)
- 关于遇到的JVM内存的相关问题
- 关于C#代码远程连接Oracle数据库涉及的所有相关软件与类库的总结
- C# 关于控件的z-order(Z轴次序)属性(By dlm)
- .net是如何实现Page.IsPostBack属性的?看看C#中关于IsPostBack的解释
- Android:关于声明文件中android:process属性说明 新进程
- 关于XStream相关的常用方法;设置别名;忽略属性;设置xml字段属性