摘要:
虽然iOS 5.0版本之后加入了ARC机制,但由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实验的开发环境:XCode 4.5.21、运行Demo。先下载一个实现准备好的内存泄露的Demo吧:leak app下载下来,打开运行,程序是一个寿司的列表,列出各种寿司卷。试着选择里面的几行,应该是选第二行的时候就崩溃了。崩溃截图:在崩溃的地方断住了,知道crash的地方了,但是不知道具体crash的原 阅读全文
摘要:
MacVim下载安装DownloadMacVim 7.3 (snapshot 64) for Mac OS X Lion. (Released Jan 2, 2012.)下载后得到MacVim-snapshot-64.tbz这个包里面有三个文件(MacVim、mvim、reader.txt)把MacVim.app放到你的应用程序也就是/Applications目录下PS:必须放到应用程序目录下,否则终端调用:mvim会找不到MacVim的可执行文件把mvim拷贝到/usr/bin/这个目录下$sudo cp -f mvim /usr/bin/终端就可以通过$ mvim 文件名来启动MacVim 阅读全文
摘要:
基本思路是:对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax,用dmax与限差D相比:若dmax<D,这条曲线上的中间点全部舍去;若dmax≥D,保留dmax对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。/// <summary>/// Uses the Douglas Peucker algorithm to reduce the number of points./// </summary>/// <param name="Points">The points.</par 阅读全文
摘要:
BitmapFactory.decodeResource和BitmapFactory.decodeStream,相信对于有过android app开发经验的人来说都是很熟悉了。关于Bitmap的OOM问题,网上也有很多文章进行了分析,不少文章都说为避免OOM,最好使用BitmapFactory.decodeStream,但是具体说明原因的我至今没有找到,所以趁着10.1期间有空,就调查了一番,希望结果对大家能有帮助。 先来张时序图,看了这张图,估计很多问题都不用说明了:下面做些说明:1,函数externalBytesAvailable(...)的内存计算方法详细请参见文章《Android .. 阅读全文
摘要:
在编写Android程序的时候,我们总是难免会碰到OOM的错误,那么这个错误究竟是怎么来的呢?我们先来看一下这段异常信息:08-14 05:15:04.764: ERROR/dalvikvm-heap(264): 3528000-byte external allocation too large for this process.08-14 05:15:04.764: ERROR/(264): VM won’t let us allocate 3528000 bytes08-14 05:15:04.764: DEBUG/skia(264): — decoder->decode retu 阅读全文