首页 / 知识
关于c#:进程内存大小-不同的计数器
2023-04-13 10:07:00

Process Memory Size - Different Counters我正试图找出自己的.Net服务器进程正在使用多少内存(用于监视和记录目的)。 我正在使用:
但是,Process对象具有几个不同的属性,这些属性使我可以读取所使用的内存空间: 然后是" peaks ":我想它只是存储这些最后一次使用的最大值。 通读每个属性的MSDN定义对我来说并没有太大帮助。我不得不承认我对内存管理方式的知识(就分页和虚拟而言)非常有限。 所以我的问题显然是"我应该使用哪个?",我知道答案是"取决于情况"。 此过程基本上将一堆列表保存在正在发生的事情中,而其他进程则与之通信并查询其内容。我期望运行该服务器的服务器需要大量RAM,因此,随着时间的推移,我要查询此数据,以便与保留在其中的列表大小相比能够估计RAM需求。 > 那么...我应该使用哪一个?为什么? 如果您想知道GC使用了多少,请尝试:
如果您想从Windows中了解您的进程使用什么(TaskManager中的" VM Size"列),请尝试:
如果您想知道进程在RAM中的内容(而不是在页面文件中)(TaskManager中的"内存使用情况"列),请尝试:
有关不同种类的内存的更多说明,请参见此处。 好的,我在Google上找到了拉斯提到的页面,我相信这对于那些不太了解内存工作原理的人(例如我)来说是一个很好的解释。 http://shsc.info/WindowsMemoryManagement 我的简短结论是:
感谢您的帮助! 如果要使用Windows Vista任务管理器中所示的"内存(专用工作集)"(相当于进程资源管理器" WS专用字节"),请使用以下代码。最好将这个无限循环扔到线程/后台任务中以获取实时统计信息。
要获得任务管理器所赋予的价值,我要对上面的Mike Regan的解决方案表示敬意。但是,有一个变化:它不是: 以下是一个完整的解决方案,用于在WPF或WinForms应用程序中简单显示"内存使用情况"(任务管理器,如给定)(在这种情况下,仅在标题中)。只需在新的Window构造函数中调用此方法:
这是一个公平的描述吗?我想与我的团队分享此信息,所以请让我知道它是否不正确(或不完整): C#中有几种方法可以询问我的进程正在使用多少内存。
鉴于以上所述,以下是一些在C#中测量内存使用情况的方法: 1)Process.VirtualMemorySize64():返回进程使用的所有内存-托管或非托管,虚拟或加载,私有或共享。 2)Process.PrivateMemorySize64():返回进程使用的所有私有内存-托管或非托管,虚拟或已加载。 3)Process.WorkingSet64():返回进程使用的所有私有,已加载内存-托管或非托管 4)GC.GetTotalMemory():返回垃圾回收器正在监视的托管内存量。 我建议还监视页面错误的发生频率。当您尝试访问一些已从物理内存移动到交换文件的数据,并且系统必须从磁盘读取页面之前,才可以访问此数据。 工作集不是一个很好的属性。根据我的收集,它包括该进程可以触及的所有内容,甚至包括多个进程共享的库,因此您会在该计数器中看到重复计数的字节。私有内存是一个更好看的计数器。 |
最新内容
相关内容
python如何看变量属性
python如何看变量属性,培训,属性,函数,变量,参数,对象,方法,列表,范围内,字典,1、使用dir()函数查看dir()函数不带参数时,返回当前范围内的变python如何控制内存
python如何控制内存,名称,情况,系统,定期,管理,数字,数据,培训,对象,内存,python控制内存的方法:一、对象的引用计数机制二、垃圾回收机制三、python如何写多进程
python如何写多进程,培训,进程,方法,对象,线程,测试,个子,函数,实例,差不多,python中的多进程是通过multiprocessing包来实现的,和多线程的thrpython如何清理内存
python如何清理内存,培训,策略,情况,对象,垃圾,变量,内存,结束,赋值,局部,引用计数,这是Python的垃圾回收策略。补充一下。解释器(也就是你说python如何判断对象的某个属性
python如何判断对象的某个属性,培训,异常,名称,方法,对象,属性,特性,参数,逻辑,以上,在python判断某个对象是否具有某属性可以使用以下方法方python线程和进程的区别
python线程和进程的区别,系统,数据,培训,单位,进程,线程,管理,时间,通讯,地址,python引入进程和线程的概念及区别threading模块提供的类:Threapython判断对象是否有某个属性
python判断对象是否有某个属性,培训,名称,异常,属性,对象,方法,参数,定义,以上,更多,python判断对象是否有某个属性的方法:hasattr(object,nampython如何查看对象属性
python如何查看对象属性,培训,网络,系统,函数,对象,属性,变量,示例,实例,模块,在Python语言中,有些库在使用时,在网络上找到的文档不全,这就需要python如何判断对象是否有某个属性
python如何判断对象是否有某个属性,培训,名称,异常,对象,属性,特性,参数,方法,函数,定义,python如何判断某一对象是否有某一属性,可以使用hasapython如何释放内存
python如何释放内存,培训,情况,名称,对象,赋值,内存,别名,变量,语句,函数,关于Python中的内存释放问题首先就不得不提到Python解释器在何种情python整型对象是如何在内存中存储
python整型对象是如何在内存中存储的?,代码,培训,地址,位置,内存,开辟,整数,分配,存在,负数,在Python中整型对象所存储的位置是不同的,有一些python模块的name属性
python模块的name属性,培训,模块,属性,程序,空格,底下,实例,中间,以上,更多,python模块的name属性一个模块被另一个程序第一次引入时,其主程序