上篇简单介绍了gcc4.8提供的几种allocator的实现方法和作用,这是所有stl组件的基础,容器必须通过allocator申请分配内存和释放内存,至于底层是直接分配释放内存还是使用内存池等方法就不是组件需要考虑的事情。这篇文章开始分析gcc4.8 stl的容器源码实现。stl的容器分为序列式容...
分类:
其他好文 时间:
2014-08-03 17:33:55
阅读次数:
270
C#中static void Main(string[ ] args)中的作用及解释static 表示方法是静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放。void 表示方法没有返回值,就是方法没有renturn 关键字。main 是方法名,当...
分类:
其他好文 时间:
2014-08-03 12:45:35
阅读次数:
201
1、女朋友就是私有变量,只有我这个类才能调用
2、爱上一个人,就是内存泄露-你永远释放不了
...
5、1+2==3
...
分类:
其他好文 时间:
2014-08-03 12:38:15
阅读次数:
171
说明:相对于其它模式,Flyweight模式在PHP实现似乎没有太大的意义,因为PHP的生命周期就在一个请求,请求执行完了,php占用的资源都被释放。我们只是为了学习而简单做了介绍。1. 概述面向对象技术可以很好地解决系统一些灵活性或可扩展性或抽象性的问题,但在很多情况下需要在系统中增加类和对象的个...
分类:
其他好文 时间:
2014-08-03 12:32:25
阅读次数:
286
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在...
分类:
移动开发 时间:
2014-08-02 23:12:04
阅读次数:
349
1.1 buffer pool原理
Buffer Cache是Oracle SGA中一个重要部分,通常的数据访问和修改都需要通过BufferCache来完成。当一个进程需要访问数据时,首先需要确定数据在内存中是否存在,如果数据在Buffer中存在,则需要根据数据的状态来判断是否可以直接访问还是需要构造一致性读取;如果数据在Buffer中不存在,则需要在Buffer Cache中寻找足够的空间以装载需要的数据,如果Buffer Cache中找不到足够的内存空间,则需要触发DBWR去写出脏数据,释放Buff...
分类:
其他好文 时间:
2014-08-02 12:50:33
阅读次数:
337
1.为什么要用finally先看一个没有finally的异常处理try-catch语句:如果count为要使用到的资源,而且用完要求释放此资源。那么我们能够把释放资源的语句放到try-catch后运行,当前的程序无论是在运行完try语句块还是catch语句块,都会顺序运行到以下释放资源的语句。int...
分类:
编程语言 时间:
2014-08-02 12:14:03
阅读次数:
273
曾经在生产上遇到过一个df 和 du出现的结果不一致的问题,为了排查到底是哪个进程占用了文件句柄,导致空间未释放,首先在linux上面,一切皆文件,这个问题可以使用lsof这个BT的命令来处理(这个哈还可以来查询文...
分类:
其他好文 时间:
2014-08-02 05:15:23
阅读次数:
278
本文将介绍如何使用增强的catch 自动释放资源。
分类:
编程语言 时间:
2014-08-02 01:47:02
阅读次数:
195
vector,map这些容器还是在堆上分配的内存,在析构时是释放空间vector在提高性能可以先reserve在push_back()reserve:决定capacity,但没有真正的分配内存,我感觉只是告诉操作系统预留一段空间,但没有真正的分配resize:真正的分配了,可以通过下标访问
分类:
其他好文 时间:
2014-08-01 23:00:12
阅读次数:
263