本质上,内存泄露可以定义为:应用程序不再需要占用内存的时候,由于某些原因,内存没有被操作系统或可用内存池回收。编程语言管理内存的方式各不相同。只有开发者最清楚哪些内存不需要了,操作系统可以回收。一些编程语言提供了语言特性,可以帮助开发者做此类事情。另一些则寄希望于开发者对内存是否需要清晰明了。
“程序员是现存最大的手工艺人群体,黑客与画家的共同之处,在于他们都是创作者,都试图创作出优秀的作品。” 硅谷“创业教父”保罗 · 格雷厄姆如是说。从一定角度来看,编程确实可以看作是一种艺术创作活动。那么我们其实可以认为,要创作出更好的软件和程序,程序员就需要尽可能地培养艺术家的特质。方法之一就是欣赏古典名画。
在高并发环境下,大量的读、写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生。无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数,最常见的有redis和memcached等,既然是分布式,那么他们是怎么实现分布式的呢?本文主要介绍分布式缓存服务mencached的分布式实现原理。