计算机世界中的哲学之缓存

只要接触过计算机,缓存对于你来说都不陌生。我们熟知的概念是内存是磁盘的缓存或者CPU中的高速缓存,这些确实都是缓存,不过我认为缓存是一种思考方式,一种处理问题的方式。

之所以这么说,是因为缓存不仅存在于电脑世界中,在我们的日常生活中也随处可见。比如快递,人们把货物都先缓存在仓库中再由汽车、轮船、飞机等运送。在计算机世界里为了充分的利用资源和尽可能的提高性价比,缓存的概念更是随处可见。

缓存的概念关系到快和慢、廉价和昂贵的 两种对象。记得刚学计算机体系结构时对此就有一些疑问,既然高速cache比较快为什么不都用高速cache呢?这是因为成本的原因限制了,所以更高级的会比低级的小。这样就又延伸出大小的概念。为解决高低两端大小不对等的问题,就出现的到底什么东西才最需要放在高速的设备里,由此需求各种的置换算法就诞生了。我们最熟悉的可能就是什么先进先出、最近最少使用等算法了。在我们的概念里可能它们只用于内存置,其实不是,它们可以用于计算机世界的各个方面里甚至我们的生活中。

在学习Android的开发中我们在处理图片时会遇到各种内存溢出(OOM)问题。才此时我们为了速度和空间的充分利用就会使用到缓存,而且我们的做法可能是当图片在内存时就直接拿,当不再内存时就把图片load进来,这样虽说能够避免图片的多次load,但还是会遇到OOM问题,此时我们如果使用LRU等置换算法来主动地释放那些不太使用的图片可能就会对此问题进行一些改进。我们不光在此可以使用此思想,如果你遇到相似的问题,不妨尝试一下这种解决方案,可能会有意想不到的惊喜。

缓存其实像我们表达了一种更重要的为人处事的思想,做什么事情不是最快(全用高速零件)和最便宜(全用最慢组件)才最好,它体现了一种中庸之道,“完美”并不一定是真的完美,符合现实情况的协调各方利益的可行的解决方案可能才是真的完美。无论做程序开发还是产品设计、无论是做事还是做人,过分的追求极致可能都不会是最好的行事方案,最好还是留些缓冲的余地。

感谢您的阅读,希望对您有些帮助。 作者:孔令辉

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值