代码中block经常用到。例如网络请求?一些图形分析处理等,就是比较耗时的操作,多线程gcd然后进行操作。这个时候,会使用block进行处理,然后调用相应的处理逻辑。可能会对当前对象进行一些处理,现在分享的也就是这样的一种内存泄漏情况:正常来说:释放内存都会调用dealloc函数,但是如果是下面的代...
分类:
其他好文 时间:
2015-03-20 20:19:00
阅读次数:
114
[-] 节制地使用Service 当界面不可见时释放内存 当内存紧张时释放内存 避免在Bitmap上浪费内存 使用优化过的数据集合 知晓内存的开支情况 谨慎使用抽象编程 尽量避免使用依赖注入框架 使用ProGuard简化代码 使用多...
分类:
移动开发 时间:
2015-03-17 22:02:38
阅读次数:
239
在计算机系统中,运行的应用程序的数据都保存在内存中,不同类型的数据所保存在的区域不同,应用程序中总共有五个内存区域:
(1)、栈区【stack】:由编译器自动分配并释放,一般存放函数的参数值,局部变量等
(2)、堆区【heap】:由程序员分配和释放内存,如果程序员不释放,程序结束时,可能会由操作系统回收
(3)、全局区【静态区】【static】:全局变量和静态变量的存储是放在一起的,而该区又...
分类:
其他好文 时间:
2015-03-17 21:53:30
阅读次数:
139
百度笔试题:malloc/free与new/delete的区别相同点:都可以申请动态内存和释放内存。不同点:(1) 操作对象有所不同: malloc和free是C/C++的标准库函数,new和delete是C++的运算符。对于非内部数据类的对象而言,光用malloc/free 无法满足动态对象的要求...
分类:
其他好文 时间:
2015-03-14 15:05:04
阅读次数:
129
一. 原理tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,tcmalloc号称要比它快。一次malloc和free操作,ptmalloc需要300ns,而t...
分类:
其他好文 时间:
2015-03-13 18:26:40
阅读次数:
414
2 iOS平台内存使用原则2.1 对象的所有权与销毁2.1.1 谁创建,谁释放;如果是以alloc,new或者copy,mutableCopy创建的对象,则必须调用release或者autorelease方法释放内存;如果没有释放,则导致内存泄漏!2.1.2 谁retain,谁释放;如果对一个对象发...
分类:
移动开发 时间:
2015-03-12 23:58:37
阅读次数:
615
手动内存管理 在进行内存管理的时候要注意内存管理的准则:谁开辟内存,谁释放内存(谁污染的谁治理) 。开辟内存之后,对象的引用计数为1,只有继承自NSObject的对象才有内促管理的概念, 当对象引用计数为0的时候对象的内存会被清理。 下列关键字会开辟内存,对象引用计数器+1 alloc new co...
分类:
其他好文 时间:
2015-03-11 23:25:11
阅读次数:
159
郭霖最近整理的文章:合理管理内存分析编码过程中如何避免过多内存占用,以及如何实现高性能的内存使用。尽可能使用intentService;当界面不可见时释放内存;当内存紧张时释放内存;避免bitmap占用内存;使用android api提供的数据集合;减少抽象类的使用;避免使用依赖注入;使用proGu...
分类:
移动开发 时间:
2015-03-08 15:31:55
阅读次数:
134
1、new/delete是C++的操作符,而malloc/free是C中的函数。2、new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。3、new建立的是一个对象,而malloc分配的是一块内存;new建立的...
分类:
编程语言 时间:
2015-03-06 16:23:47
阅读次数:
188
包含动态内存分配的类需要自定义拷贝构造函数。无定义默认为浅拷贝,此时参数对象和创建对象的指针成员指向同一块内存,调用二者的析构函数时第一对象调用释放内存成功,第二个对象会再次进行释放内存,此时运行时出错double free故:应定义,且为深拷贝浅拷贝实例代码: 1 #include 2 3 cl....
分类:
其他好文 时间:
2015-03-06 12:30:03
阅读次数:
226