程序员告诉你清理内存的真相!绝对反直觉!

https://www.bilibili.com/video/BV1C619Y5EQw

 

1. 给硬件保留的内存不是虚拟内存。 2. 物理内存是真实存在的内存。物理内存一小部分保留给硬件用,另一部分给操作系统用。操作系统把其中一部分自己用,剩下的部分留着准备分配给其它程序用。 3. 虚拟内存不是真实存在的事物,是操作系统虚幻出来的概念。操作系统把虚拟内存分配给程序,只有在程序真实使用内存的时候,这些虚拟内存才会被映射到真实的物理内存。当这些虚拟内存不被使用的时候,操作系统视情况可能会把这些转成硬盘存储,从而不占用真实的物理内存。具体情况很复杂,至少好几节课才能讲明白最基础的部分。 4. 资源管理器显示的基本是物理内存的使用情况。 5. 你的猜想是正确,但是太局限了。你说的这种情况不仅限于启动过程。每时每刻操作系统都会根据物理内存大小灵活使用物理内存。你给Windows的更多的物理内存它就用更多的物理内存,基本是多多益善,同时你的所有程序很多情况下都会变快。 我个人有一个很不严谨比喻:可以把操作系统视为银行,物理内存是真实的现金,虚拟内存是手机账户上的钱。你是一个程序,你只要向银行要钱,银行就会直接增加你账户上的数字。你账户里的数字增长了,但是你并没有真的拿到现金,你需要去银行里取钱才能拿到现金。如果你去银行的时候,银行金库见底,你就要排队等着,等别的程序还钱才行。而这个世界很多时候大家不会主动还钱。当然银行也不是傻子,如果他发现有人拿着现金不用,就会上门催债把现金强行收走。现在程序普遍都很贪,动不动就向银行要很多很多的钱,取钱也取得很随便,导致银行金库经常不足,很多取钱的人都在排队。银行也要很频繁地去催债。而且催债过程也很浪费时间。 你增加物理内存后,银行的金库总量变大,但是因为大家都很贪,所以金库还是日常紧缺,但是排队的人会变少。银行也会减少催债。从而整个计算机都会变快。 假设有个程序每周用一次现金。物理内存充足的话,它拿到足够的现金后就可以一直留着不还给银行,银行也不会来催债。如果物理内存不足,它每周都要去排队取钱,取完用完之后很快又会被银行催债然后被没收现金,下周它又要重新去排队。它就会变慢很多。

posted @ 2024-11-25 21:23  China Soft  阅读(6)  评论(0编辑  收藏  举报