在有虚拟存储器的情况下,是否还用担心内存泄露?

codinghuang
  • 142

因为我觉得那些泄露出去的内存,在很长一段时间都是用不上的,我觉得它们通过页面置换算法是会被换出到磁盘中,这样内存还是够用的。所以,在现在,内存泄露真的会那么严重吗?

回复
阅读 2k
2 个回答

严重!最基本的来说这是一个代码好坏的问题,存在内存泄漏说明是一个有问题的代码。并不能因为一项技术能承担起你这个问题的后果而不去解决这个问题。

  1. 当系统物理内存不足,会触发swap分区的使用,内核通过内存置换算法(比如采用LRU策略)将非热点内存保存到磁盘swap分区中,一旦触发swap,后续新的内存申请都会触发置换,访问旧的内存一旦被置换到swap分区又需要重新从swap分区读到内存中,这样就会导致恶性循环,内存和swap之间频繁做io,内存抖动严重,进程申请和访问内存性能严重下降,有的进程甚至申请不到内存而报OOM的错误退出。

  2. 国外某知名公司就直接去掉swap分区,内存不足直接让程序退出,这样也能及时发现问题,不至于导致内存抖动使得服务器整体性能下降。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏