我把每个进程(所有进程)使用的空间内存值相加,显示在任务管理器并且我知道它们的总和实际上并不是68%
下面显示的我的存储卡!
所以我安装进程探索器我看到有两列!私人字节和工作集,并且在 TaskManager 底部显示的是 PrivateBytes 的总和,而不是 Working-Bytes :
Q1:我想知道 Private-Bytes 是什么?它和 Working Bytes 有什么区别?
问题 2:当我更改进程的优先级时,会发生什么变化?我将进程的优先级从 LOW 更改为 RealTime,但 PrivateBytes 和 WorkingBytes 均未发生改变
问候
答案1
答案 1
私人字节指进程可执行文件所占用的内存量要求- 不一定是数量实际使用。它们是“私有的”,因为它们(通常)排除内存映射文件(即共享 DLL)。但问题是,它们不一定排除内存由这些文件分配。无法判断私有字节的更改是由于可执行文件本身还是由于链接库造成的。私有字节也是不是独占物理内存;它们可以分页到磁盘或待机页面列表(即不再使用,但尚未分页)。
工作集指总计身体的进程使用的内存 (RAM)。但是,与私有字节不同,这还包括内存映射文件和各种其他资源,因此它比私有字节的测量精度更低。这与任务管理器的“内存使用情况”中报告的值相同,近年来一直是无数混乱的根源。工作集中的内存是“物理的”,因为它可以在没有页面错误的情况下进行寻址;但是,备用页面列表是还仍然物理地存在于内存中但未在工作集中报告,这就是为什么当您最小化应用程序时您可能会看到“内存使用率”突然下降的原因。
虚拟字节总计虚拟地址空间整个进程占用的内存。这类似于工作集,因为它包括内存映射文件(共享 DLL),但它还包括备用列表中的数据以及已经分页并位于磁盘某处的页面文件中的数据。在高负载下,系统上每个进程使用的总虚拟字节数加起来将比机器实际拥有的内存多得多。
因此关系如下:
- 私有字节是你的应用实际分配的,但包括页面文件的使用情况;
- 工作集是非分页的私有字节加上内存映射文件;
- 虚拟字节是工作集加上分页的专用字节和待机列表。
答案 2
进程的优先级与内存使用无关。进程的优先级与该进程访问 CPU 的时间长短有关。将进程设置为实时时,它将被赋予最高优先级。这听起来不错,但通常是一件坏事,因为它将能够阻止其他进程。如果您的程序有时会使用所有 CPU 能力并导致其他应用程序出现问题,那么降低优先级可能会有所帮助。除非是针对您创建的应用程序,否则您实际上永远不需要提高优先级。默认情况下,大多数需要提高优先级的应用程序都会在安装时这样做。
顺便说一句,如果您拥有多核系统,那么优先级就没那么重要了,因为系统还会在核心之间分配负载。如果您拥有多核系统,那么在应用程序的亲和力方面,您将有更好的运气,可以调整其使用的首选核心。您的大多数应用程序只会使用第一个核心。如果您希望某个应用程序具有更好的响应能力,只需将其放在另一个不经常使用的核心上即可。此外,如果您有超线程,那么您需要记住,偶数核心是假的,应该被视为对前一个核心的一个小奖励。如果您使用动态超频并将其配置为非对称时钟速度,情况会变得更加复杂,因为在这种情况下,除了第一个核心之外的所有核心通常都会被降频,直到您开始做一些要求高的事情。如果是这种情况,除非您确定所有核心都在全速运行,否则您真的不想弄乱亲和力。