因为我觉得那些泄露出去的内存,在很长一段时间都是用不上的,我觉得它们通过页面置换算法是会被换出到磁盘中,这样内存还是够用的。所以,在现在,内存泄露真的会那么严重吗?
因为我觉得那些泄露出去的内存,在很长一段时间都是用不上的,我觉得它们通过页面置换算法是会被换出到磁盘中,这样内存还是够用的。所以,在现在,内存泄露真的会那么严重吗?
当系统物理内存不足,会触发swap分区的使用,内核通过内存置换算法(比如采用LRU策略)将非热点内存保存到磁盘swap分区中,一旦触发swap,后续新的内存申请都会触发置换,访问旧的内存一旦被置换到swap分区又需要重新从swap分区读到内存中,这样就会导致恶性循环,内存和swap之间频繁做io,内存抖动严重,进程申请和访问内存性能严重下降,有的进程甚至申请不到内存而报OOM的错误退出。
国外某知名公司就直接去掉swap分区,内存不足直接让程序退出,这样也能及时发现问题,不至于导致内存抖动使得服务器整体性能下降。
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答3.2k 阅读
严重!最基本的来说这是一个代码好坏的问题,存在内存泄漏说明是一个有问题的代码。并不能因为一项技术能承担起你这个问题的后果而不去解决这个问题。