美文网首页
WINDOWS平台的内存知识(任务管理器,物理内存和虚拟内存)

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