首页 > 系统相关 >程序员告诉你清理内存的真相!绝对反直觉!

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

时间:2024-11-25 21:35:21浏览次数:6  
标签:操作系统 银行 程序员 内存 直觉 催债 虚拟内存 物理

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

 

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

标签:操作系统,银行,程序员,内存,直觉,催债,虚拟内存,物理
From: https://www.cnblogs.com/chinasoft/p/18568783

相关文章

  • JEDEC DDR5 标准解读与技术思考(2)——DDR5 内存地址映射与容量扩展技术
    DDR5内存地址映射与容量扩展技术DDR5(DoubleDataRate5)内存是最新一代内存技术,相比于DDR4,它在带宽、容量和性能方面都有显著提升。DDR5的最大特点之一就是它支持更大的内存容量,并且通过优化地址映射和并行处理方式,极大地提升了数据访问速度和内存效率。本文将详细分析......
  • 关于STM32存储、内存分析(为何从0x8000起始)
    关于图上的几个问题(图从左往右看)1.为什么STM32的理论地址范围(寻址范围)为4G?STM32的地址总线为32位,32位可以理解为物理的引脚,32只引脚通过拉高拉低,也就是选择0或者1,32位2进制=2的32次方=4294967296组地址,一个地址对应一个字节,即:4294967296字节=4194304KB=4096MB=4GB地址总线......
  • GaussDB内存过载分析
    问题现象数据库进程内存占比较高长时间占比较高观察监控平台内存占用的变化曲线,无论当前数据库是否有业务在运行,数据库进程内存占总机器内存的比例长时间处于较高状态,且不下降。执行作业期间占比较高数据库进程在没有业务执行时,内存使用持续处于较低的状态,当有业务执行时,内......
  • GaussDB内存过载分析
    问题现象数据库进程内存占比较高长时间占比较高观察监控平台内存占用的变化曲线,无论当前数据库是否有业务在运行,数据库进程内存占总机器内存的比例长时间处于较高状态,且不下降。执行作业期间占比较高数据库进程在没有业务执行时,内存使用持续处于较低的状态,当有业务执行时,内......
  • 指针的奥秘:深入探索内存的秘密
    前言在计算机编程的广阔天地中,指针作为一种独特的数据类型,它不仅是C语言的核心,也是理解计算机内存管理的基石。指针的概念虽然强大,但对于初学者来说,它常常是学习过程中的一个难点。本文旨在揭开指针的神秘面纱,带你一探究竟,从基础概念到高级应用,全面解析指针的奥秘。 指针:......
  • 内存与缓存区别
    缓存用途:缓存的主要目的是为了减少对内存或更慢的存储设备的访问次数,将频繁访问的数据暂存起来,以便下次使用时能够更快地获取,从而提升系统的整体性能。内存用途:内存主要用于存储正在运行的程序和数据,为CPU提供快速的数据访问,以保证程序的正常运行。区别解释一内存是计算机......
  • JavaScript有几种类型值?能否画出它们的内存图?
    JavaScript有七种原始数据类型和一种引用类型:原始数据类型(PrimitiveDataTypes):存储在栈(Stack)内存中,值直接存储在变量访问的位置。Boolean:true或falseNull:只有一个值null,表示空或不存在的值。Undefined:变量声明了但未赋值时的默认值undefined。Number:所......
  • 程序员都看对眼的开发平台
    让业务人员来评价低代码平台好不好用,参考性并不大。毕竟让无编程经验的人来评价一款开发产品,问他开发效率高不高,也问不出来个所以。但如果连专业的程序员都赞不绝口的低代码平台,那其参考性可就不一般了。就在上周,一家做多端的软件公司老板找到我,他听说我们还和那几大运营商有......
  • 你今年多大了?请说说看你认为你的程序员生涯能做到多少岁?
    至于前端开发的程序员能做到多少岁,这并没有一个固定的答案。它取决于很多因素,包括:个人健康状况:程序员的工作需要长时间坐在电脑前,可能会对身体造成一定的负担。保持良好的健康习惯对于延长职业生涯至关重要。学习能力和适应性:前端技术发展日新月异,程序员需要不断学习新技......
  • 推荐5款程序员必备的画图工具,效率提升利器!
    ProcessOnProcessOn是一款专业强大在线作图工具,提供AI生成思维导图流程图,支持思维导图、流程图、组织结构图、网络拓扑图、鱼骨图、UML图等多种图形。同时可实现人与人之间的实时协作和共享,提升团队工作效率。在线访问地址:https://www.processon.com丰富的图形素材库:免......