1、一个由C编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。 2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序.....
分类:
编程语言 时间:
2014-10-20 22:41:40
阅读次数:
382
从编译器角度来看内存分三种情况:1 系统初始化时都已经确定好、不会再变动的内存区域,一般指的是全局变量、静态变量数组等。2 栈上内存:一般指的是函数内部的局部变量等,函数调用时分配内存,调用结束后系统自动释放不用自己考虑回收,效率高。有时候栈需要自己设定,设定不当可造成栈溢出。3 堆上内存:即用动态...
分类:
其他好文 时间:
2014-10-20 13:21:39
阅读次数:
252
内存管理机制引用计数:因为OC中不存在垃圾回收机制,所以才根据引用计数回收机制。当引用计数为0时,销毁空间。也就是说,根据引用计数来确定一个对象是否释放。可以改变引用计数的操作:allcoretainreleasecopydealloc便利构造器自动释放池:每次对象调用autorelease方法时(..
分类:
其他好文 时间:
2014-10-18 11:19:31
阅读次数:
120
1、一个由C编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。 2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序.....
分类:
编程语言 时间:
2014-10-16 14:48:43
阅读次数:
261
查看Linux内存使用情况free -mLinux内存清理:绝大多数情况下都不需要此操作,因为cache的内存在需要的时候是可以自动释放的~最好先sync几次,再清理内存,有下面三个级别,数值越大清理越彻底。该文件的值默认为0.echo 1 > /proc/sys/vm/drop_cachesech...
分类:
系统相关 时间:
2014-10-15 21:58:31
阅读次数:
290
我们在使用UIImageView帧动画时会碰到加载到内存的图片不会自动释放,占用很多的内存,这时我们可能使用 UIImage imageWithContentsOfFile 并配合 imageView.animationImages = nil; 来清理不用的缓存动画图片。具体如下:
UIImageView帧动画相关属性和方法:
需要播放的序列帧图片数组(里面都是UIImage对象,会...
分类:
其他好文 时间:
2014-10-15 11:23:10
阅读次数:
195
在自动释放池@autoreleasepool{}中alloc一个对象后(如p1),仍然需要用[p1 autorelease];只是这个语句和[p1 release];不同,后者表示把p1的retainCount-1,而前者仅仅表示把p1放到自动释放池中返回一个self,自动释放池结束销毁时,统一对里面的对象引用计数retainCount-1。...
分类:
移动开发 时间:
2014-10-10 17:54:34
阅读次数:
233
微软自带的注释摘要//摘要://定义一种释放分配的资源的方法。[ComVisible(true)]publicinterfaceIDisposable{//摘要://执行与释放或重置非托管资源相关的应用程序定义的任务。voidDispose();}此接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾回收器会自动释放分..
分类:
其他好文 时间:
2014-10-09 20:45:28
阅读次数:
191
最近在做程序的时候,突然发现对于NSString的理解还是存在问题的。因此补充一片blog,希望对刚刚进入OC开发并搞不清楚内存泄露问题的人一点指引。赋值:NSString * str = @"123"; // 这段代码的含义其实就是附一个常量给str,该部分由系统自动管理,不需要release释....
分类:
移动开发 时间:
2014-10-09 13:21:33
阅读次数:
228
在C++中,智能指针是一个非常重要的概念。因为C++的类动态分配的对象不能自动释放掉,需手动调用new运算符。当程序员大意时,或程序发生异常时,或许就会发生没有手动释放内存而造成内存泄露。
智能指针的定义:就是在一个类中,存在一个指向另一个类对象的指针,并通过对指针运算符(比如:->,*)的重载,就可以实现利用当前类的对象通过指针运算符来操纵另一个类的成员(就像另一个类的指针操作一样),并且,在析构函数中定义了delete操作,借助于变量的作用域,能够实现类对象空间的自动释放。
在C++ 11中,有...
分类:
编程语言 时间:
2014-09-25 17:04:39
阅读次数:
212