WINDOWS平台的内存知识(任务管理器,物理内存和虚拟内存)
作者:
游戏开发程序员 | 来源:发表于
2019-07-19 15:25 被阅读0次
windows任务管理器的进程查看
image.png
- 页面错误 当软件试图读取或写入标记为“不存在”的虚拟内存位置时发生的中断。进程中当数据不在内存而必须从磁盘检索的次数。页面错误值从进程启动的时间开始累计。
- 页面错误增量 在“任务管理器”中,自上一次更新开始的页面错误次数的变化
- 分页池 已指派给进程的,已及可以分页的系统分配的虚拟内存。页面调度就是将很少使用的程序工作内存部分从RAM移到其他存储媒体,通常是硬盘。在“任务管理器”中,进程使用的系统分配虚拟内存数量以 KB 为单位。
- 峰值内存使用率 在“任务管理器”中,自进程启动以来驻留于进程中的物理内存的峰值。
- 工作集(内存) Working set: 可以这么理解, 此值就是该进程所占用的总物理内存. 由两部分组成, 即 '专用工作集' + '共享工作集'.
- 内存(专用工作集): 这对于一个进程是最重要的, 它代表了一个进程独占用了多少内存.
- 内存(共享工作集): 这是该进程和别的进程共享的内存量. 通常, 这是加载一个 dll 所占用的内存.
- 提交大小,往往被称作内存提交大小,用来标识为某个进程正常使用而保留的虚拟内存的数量。它不一定被占用,但是可以保证系统需要时随时提供给系统使用。
- 页面缓冲池:由内核或驱动程序代表进程分配的可分页内核内存的数量。可分页内存是可写入其他存储媒体(例如硬盘)的内存。
- 非页面缓冲池:由内核或驱动程序代表进程分配的不可分页的内核内存的数量。不可分页的内存是不能写入其他存储媒体的内存。
设置WINDOWS物理内存和虚拟内存比例
- SetProcessWorkingSetSize 和 EmptyWorkingSet
该函数不是节省内存,而是强制把进程的物理内存搬到虚拟内存中. 另外有一些资料上说,该函数“将有可能导致缺页中断,严重影响性能”
-
缺页中断 就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。
-
虚拟内存技术 是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。
-
虚拟内存 也被称为"页面文件". 是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。
- 定位内存泄漏有 dotMemory / ANTS Memory Profiler rammap之类的工具可以用。
- 通过此函数 传递-1/-1后,使进程使用的内存交换到虚拟内存,只保留一小部分代码.应用程序被激活或者有操作请求时,这些内存又会被重新占用。频繁的设置会降低系统性能,因为系统需要频繁的进行内存和硬盘间的页面交换。
- 关于SetProcessWorkingSetSize减少内存占用 的错误理解
- 任务管理器”内存列的含义 https://blog.csdn.net/fishmai/article/details/52388844
- MSDN官方说明 SetProcessWorkingSetSize function (winbase.h)
本文标题:WINDOWS平台的内存知识(任务管理器,物理内存和虚拟内存)
本文链接:https://www.haomeiwen.com/subject/dpcslctx.html
网友评论