ARC(自动引用计数)是2011年伴随iOS5来的一项技术。简单来说就是通过LLVM3.0编译器帮助程序处理“一大部分”OC中的内存管理。为什么是“一大部分”,这个等会儿解释。一直以来内存管理这个话题都是初学iOS开发,初学OC语言必须要面对的知识点,也是大家容易出错的地方。对象释放后调用会造成cr...
分类:
其他好文 时间:
2014-07-31 20:05:47
阅读次数:
737
Cocos2d-x用了一种引用计数的方式来管理内存对象,通过类Ref、AutoreleasePool和PoolManager来完成。
Ref为引用计数类,其构造函数是protected的访问类型,当Ref的对象被创建的时候它的引用计数为1
在对象创建的时候会调用create,然后调用autorelease,将对象放入对象池(AutoreleasePool的一个对象中)方便后面的统一管理,
...
分类:
其他好文 时间:
2014-07-31 17:08:46
阅读次数:
241
C++中智能指针可以防止出现野指针、内存泄露等情况,智能指针的类中包含4个函数:构造函数、拷贝构造函数、重载复制操作符、析构函数。构造函数需要对引用计数和指针进行初始化,引用计数初始化为1,拷贝构造函数完成对象之间的拷贝,要注意引用计数的变化和判断两个指针是否指向相同的内存。重载复制操作符,需要判断的情况是左值代表的指针如果引用计数减为0,要释放相应的内存,避免发生内存泄露。析构函数中先判断引用计...
分类:
其他好文 时间:
2014-07-30 01:02:42
阅读次数:
199
C++中的智能指针是用一个类对另一个对象的指针或者引用进行管理,具体对该类的管理可以用包含对象指针以及引用计数的类来记录;一般有两种方式实现:1. 在对象内部记录引用的个数,这需要对象预留引用计数相关的接口2. 用一个单独的资源管理类进行管理,则不需要修改对象下面主要是第二种方法:(参考)http:...
分类:
编程语言 时间:
2014-07-29 21:22:43
阅读次数:
336
很多教科书判断对象是否存活的算法是这样的:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用。很多应届生和一些有多年工作经验的开发人员,他们对于这个问题给予的都是这个答案..
分类:
其他好文 时间:
2014-07-29 16:00:39
阅读次数:
208
无论通过引用计数算法判断对象的引用数量,还是通过根搜索算法判断对象的引用链是否可达,判定对象是否存活都与“引用”有关。在JDK1.2之前,Java中的引用的定义很传统:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种..
分类:
编程语言 时间:
2014-07-29 15:58:33
阅读次数:
221
1、自动引用计数 ARC(Automatic Reference Counting,自动引用计数)极大地减少了Cocoa开发中的常见编程错误:retain跟release不匹配。ARC并不会消除对retain和release的调用,而是把这项原本大都属于开发者的工作移交给了编译器。这样做的好处是.....
分类:
其他好文 时间:
2014-07-29 11:39:46
阅读次数:
210
TheManaWorld是一个开源2D MMORPGhttps://www.themanaworld.org/ 以下简称TMW,它的资源管理比较典型: 1 基于引用计数使资源自动归还 2 各种资源在加载时根据类型做分派 先从Resouce与ResouceManager这两个类开始,Resouce主要...
分类:
其他好文 时间:
2014-07-26 14:38:11
阅读次数:
329
1. fork 1.1 通过 fork 创建的父子进程对于fork之前打开的fd,共享文件偏移量。这是因为,父进程fork一个子进程后,会有自己的进程表项,因此二者各有一套相同的文件描述符表,他们共享了文件表项,因而也就共享了偏移量。此外,close 的关闭采用的是引用计数,当执行close时,是....
分类:
系统相关 时间:
2014-07-26 01:52:56
阅读次数:
326
1。cocos2d-x的图形渲染机制: 是每一帧调用mainloop,然后drawScene。2.autorelease和release的区别 release是立即释放引用计数,如果到达0,对象被销毁。 autorelease是延迟释放,是为了更好管理内存产生的。3。场景切换的内存处理过程 ...
分类:
其他好文 时间:
2014-07-26 00:30:46
阅读次数:
199