理论上说,只要二进制文件已经全在内存里了,删除是完全没问题的。
专注于为中小企业提供成都做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业凤庆免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
实际情况是:是否能删除取决于操作系统的行为,因为你的删除动作是要通过操作系统的来完成的,操作系统让你删,你才能删(比如Linux),否则就不能(比如Windows)。
Windows不能删的原因是:Windows把每一个可执行文件都映射成一段虚拟内存(类似pagefile),没执行到的部分可能并不实际在内存里存在,因此要对可执行文件加锁,否则,出了pagefault以后就找不到实际对应的文件了,因此Windows不让删除。
如果有能力控制内核里的那个锁,删掉一个打开的可执行文件完全没问题,很多工具(比如360)都能删。
注:Linux也有类似机制,但Linux文件系统跟cache管理基本上是分离的,Windows文件系统和cache管理绑的太紧,Windows文件系统和内核都没有提供一种机制能把打开(映射)的文件与cache管理剥离(清空SECTION_OBJECT_POINTERS的DataSectionObject、 ImageSectionObject两个指针)。
如果一个可执行文件没通过Windows文件系统驱动加载,那么就没有锁的问题,就可以删,比如Windows的内核镜像:NTOSKRNL.EXE,是通过bootloader之类的加载器加载的,虽然也实际在内存里,但可以删,删掉以后系统再启动就起不来了。
安卓系统是根据linux系统来的,为了提高软件的相应速度,安卓系统会自动的在后台开启应用程序,在你下次启动的时候就很快的可以进入应用,但是当你的程序很大的时候系统又会自动的释放内存,用不用清理,对手机来说提升不是很大,现在清理了过会儿还是会自动启动的
不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。
这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。
第一步检查每个分区的磁盘占用率用df-hXXX第二步进入每个你要清理的分区,大致查看下可能是占用比较多空间的目录用cd和ls-lXXX第三步,如果目测无法发现,那只有通过命令查找用find-sizeXXb第四步,删除认为不需要的数据用rm-rfXXX
到此,以上就是小编对于linux删除文件后空间为什么不释放了的问题就介绍到这了,希望这3点解答对大家有用。
新闻标题:游戏直接删除后磁盘的内存怎么没变?(Linux删除文件后空间为什么不释放)
网站地址:http://www.shufengxianlan.com/qtweb/news46/76546.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联