如何让应用程序立即释放内存
答案:1 悬赏:20 手机版
解决时间 2021-12-17 22:44
- 提问者网友:杀手的诗
- 2021-12-17 13:12
如何让应用程序立即释放内存
最佳答案
- 五星知识达人网友:街头电车
- 2021-12-17 14:28
一个很小的程序也可能占用CPU100%,但不会占用内存100%,内存占用100%再打开其他程序就会占用虚拟内存,虚拟内存是硬盘上的一部分,速度很慢。
占用内存多少是由程序本身决定的,不是内存占用的越多程序运行约快,内存只是作为存储器,负责运算的还是CPU,比如1+1计算1000亿次,3GHz的CPU可能需要计算两分钟,但是占用的内存和运算一次500亿+500亿是一样的,而两个500亿相加瞬时就能完成。
程序只是暂时使用内存,关闭后会释放内存。
压缩1GB的文件,并不需要把整个全部加载到内存再压缩。
假如把文件全部加载到内存。
从硬盘读取全部1G数据到内存用1分钟,压缩过程需要CPU运算10秒,压缩后的文件是800M,把800M写入硬盘用50秒,整体需要1分50秒,占用内存1.8G。
而加载100M压缩,完成后写入硬盘,然后释放内存,再加载100M压缩,完成后写入硬盘,再释放内存,这样压缩完1G需要的时间大约也是1分50秒(时间主要花费在读写数据的情况),占用内存180M。
如果压缩过程需要CPU运算5分钟,全部读取后压缩再写入完成的时间是6分钟(压缩同时进行写入),而依次读取100M同时压缩再写入的时间是5分钟多一点,运算完成的同时读写数据已经完成了(时间主要花费在运算的情况)。
这只是一个比喻,实际过程比这个复杂,但原理相同,编程的人怎么写计算机就怎么工作。
这样就说明内存占用和程序运行速度之间的关系。
越好的程序,运行速度越快,占用内存越小。
想占用内存就多开几个程序,比如Photoshop打开50个1000万像素的照片,内存就占满了。
如果内存站的越多程序运行越快,那要CPU做什么。
占用内存多少是由程序本身决定的,不是内存占用的越多程序运行约快,内存只是作为存储器,负责运算的还是CPU,比如1+1计算1000亿次,3GHz的CPU可能需要计算两分钟,但是占用的内存和运算一次500亿+500亿是一样的,而两个500亿相加瞬时就能完成。
程序只是暂时使用内存,关闭后会释放内存。
压缩1GB的文件,并不需要把整个全部加载到内存再压缩。
假如把文件全部加载到内存。
从硬盘读取全部1G数据到内存用1分钟,压缩过程需要CPU运算10秒,压缩后的文件是800M,把800M写入硬盘用50秒,整体需要1分50秒,占用内存1.8G。
而加载100M压缩,完成后写入硬盘,然后释放内存,再加载100M压缩,完成后写入硬盘,再释放内存,这样压缩完1G需要的时间大约也是1分50秒(时间主要花费在读写数据的情况),占用内存180M。
如果压缩过程需要CPU运算5分钟,全部读取后压缩再写入完成的时间是6分钟(压缩同时进行写入),而依次读取100M同时压缩再写入的时间是5分钟多一点,运算完成的同时读写数据已经完成了(时间主要花费在运算的情况)。
这只是一个比喻,实际过程比这个复杂,但原理相同,编程的人怎么写计算机就怎么工作。
这样就说明内存占用和程序运行速度之间的关系。
越好的程序,运行速度越快,占用内存越小。
想占用内存就多开几个程序,比如Photoshop打开50个1000万像素的照片,内存就占满了。
如果内存站的越多程序运行越快,那要CPU做什么。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯