为什么每次开机第一次启动程序会很慢?

本文详细介绍了CPU如何通过南桥芯片将磁盘数据传输到内存的过程,并解释了内存为何能够加速程序启动的原因。同时,还探讨了内存如何管理和释放已加载的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学过底层的朋友 或者看过我那一篇“深度理解指令集”文章都应该知道,CPU运行时要先通过南桥芯片把磁盘(硬盘)里的数据传输到内存中去,CPU才能通过内部前端总线对内存里的数据进行操作。
南桥芯片传输过程:
首先南桥芯片通过外部前端总线与磁盘交换数据,这个交换过程是磁盘的磁头和前端总线进行交互工作的而非磁盘,磁头会把磁盘里的磁信号转换成电信号在通过前端总线传输到内存中去。

加载到内存后实际上就是入栈/堆操作,从硬盘加载到内存是需要耗费一点时间的,要是每次都从硬盘上读取的话那么速率会降低,所以CPU不会那么傻每次都从硬盘上读取,当你第一次读取这个数据时内存芯片会对这个数据在内存中做记录,下一次在加载时CPU首先到内存中去找,找不到在到硬盘里面去找!
下面举一个列子:
当你从硬盘运行一个文件时这个文件里的数据会被加载到内存中去,加载到内存中的数据叫程序,当你关闭这个程序时它在内存中的数据也就随之被释放了,不过当你这个程序在加载到内存时内存芯片会对这个初始数据做记录,保存在内存里,下次在执行这个程序时直接把记录的数据拷贝过来用就可以了,所以比第一次运行要快许多!

当你内存里记录数据满了时,比如我打开a软件后打开了b软件那么内存里面已经记录了a、b软件的初始数据在打开c软件时内存已经满了无法记录了,那么内存就会删除a软件的初始数据来记录c软件的初始数据,相反如果在起初加载到内存中时内存就已经满了,那么内存芯片也会删除a软件的初始记录数据!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

17岁boy想当攻城狮

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值