本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文件页进行的。对于匿名页,内存回收过程中会筛选出一些不经常使用的匿名页,将它们写入到swap分区中,然 ...
分类:
系统相关 时间:
2016-05-03 12:21:24
阅读次数:
990
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 对于整个内存回收来说,lru链表是关键中的关键,实际上整个内存回收,做的事情就是处理lru链表的收缩,所以这篇文章就先说说系统的lru链表。 内存回收的核心思想,就是如果一些数据能够保存到磁盘,在内存不足时 ...
分类:
系统相关 时间:
2016-04-30 18:07:00
阅读次数:
318
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存压缩的页面迁移过程中的同步关系也那么复杂吧,带着好奇心就把页面迁移的源码都大致看了一遍,还好,不复杂,也容易理解,这里我们就说说在页 ...
分类:
系统相关 时间:
2016-04-25 22:20:00
阅读次数:
366
C++ 智能指针详解
一、简介
由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr...
分类:
其他好文 时间:
2016-04-22 19:53:53
阅读次数:
158
内存回收(匿名页反向映射) 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映射,匿名页主要用于进程地址空间的堆、栈、还有私有匿名共享内存(用于有亲属 ...
分类:
其他好文 时间:
2016-04-17 22:21:58
阅读次数:
286
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映射,匿名页主要用于进程地址空间的堆、栈、还有私有匿名共享内存(用于有亲属关系的进程),这些匿名页所属 ...
分类:
系统相关 时间:
2016-04-17 16:12:55
阅读次数:
717
finalize() 它是Object父类里的方法,子类可以复写这个方法。 它的工作原理是这样的:当垃圾回收器确定该对象(使用new创建的对象)不再被任何其它对象引用时,垃圾回收器将在进行对该对象的内存回收之前会先调用一次该对象的finalize()方法。 假设某个对象包含一块特殊内存(native ...
分类:
其他好文 时间:
2016-04-15 19:56:37
阅读次数:
114
Java性能优化原则:代码运算性能、内存回收、应用配置(影响Java程序主要原因是垃圾回收)代码层优化:避免过多循环嵌套、调用和复杂逻辑调优内容:1、增加最大连接数2、调整工作模式3、启用gzip压缩4、调整JVM内存大小5、作为Web服务器时,与Apache整合或Nginx6、合理选择垃圾..
分类:
其他好文 时间:
2016-04-14 19:36:36
阅读次数:
388
昨天朋友问我,如果一个java局部对象在调用jni的时候,如果java层没有引用它,这个对象会不会因为被jni层引用不被GC,导致内存泄漏。我大概想了一下,说不会。当时想的很简单,c里面没有像java一样的类似的内存回收机制,java层进入jni时值传递,不会导致引用产生。实事上比想象的复杂的多,而 ...
分类:
移动开发 时间:
2016-04-14 14:02:18
阅读次数:
141
智能指针可以用来处理动态内存回收的问题但一旦令智能指针指向动态内存如:inta=2;
scoped_ptr<int>spi1(&a);程序肯定会发生崩溃。原因是在spi1出了作用域进行析构函数的时候,会对栈内存进行delete,这是不合法的。假如能解决这个问题,我们的智能指针就能指向任何..
分类:
其他好文 时间:
2016-04-12 16:06:03
阅读次数:
172