IOS-内存检测以及优化
IOS-内存检测以及优化
2014年01月23日
Jason
PS:开始写这个系列的笔记:主要是对过去自己比较模糊的一些概念进行测试,明确结果,提高自己
IOS 应用如果占用系统的内容过大(8GB),就会造成应用直接被系统以崩溃的形式关闭,一次控制应用占用的内存大小是非常重要的事情。
现在我们来看看,一个空的应用占据的内容的大小:
测试环境:xCode 5.0/IOS 5
启动一个空应用,占用的内存为 2.6MB,占据应用崩溃的阀值为 0.03%
1:关于导航条的 Push和popup的测试结果
[self.navigationController pushViewController:m_navanimated:YES];
[self.navigationController popViewControllerAnimated:YES];
对于
pushViewController ,会将对应的ViewController对象的引用计数器+1
popViewControllerAnimated 会将对应的ViewController对象的引用计数器-1
但是有一点需要明确的是,对于函数
-(void)dealloc
{
//Objects release here
[super deallco];
}
只有在该引用计数器的值==0的时候才会调用,这个是必须牢记的。
在执行函数[self.navigationController popViewControllerAnimated:YES];的时候,如果弹出的ViewController对应的引用计数器为0,那么也会执行dealloc 函数。
所以再使用
[self.navigationController pushViewController:m_navanimated:YES];
[self.navigationController popViewControllerAnimated:YES];
栈函数对的时候,为了释放内存,我们可以这么使用
Nav_1 *m_nav = [[[Nav_1 alloc] initWithNibName:nil bundle:nil] autorelease];
[self.navigationController pushViewController:m_nav animated:YES];
这样就最大限度的节省了宝贵的内存空间
IOS-内存检测以及优化的更多相关文章
- iOS内存管理和优化 from 刘延军
- 【YFMemoryLeakDetector】人人都能理解的 iOS 内存泄露检测工具类
背景 即使到今天,iOS 应用的内存泄露检测,仍然是一个很重要的主题.我在一年前,项目中随手写过一个简单的工具类,当时的确解决了大问题.视图和控制器相关的内存泄露,几乎都不存在了.后来想着一直就那个工 ...
- xcode8 使用Instruments检测定位并解决iOS内存泄露
https://www.jianshu.com/p/9bc7e65fc247 2017.07.27 17:24* 字数 628 阅读 1319评论 6喜欢 21 简介: 虽然苹果出了ARC(自动内存管 ...
- 经验之道:最有效的iOS内存泄漏检测
版权声明:本文由胡涛原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/125 来源:腾云阁 https://www.qclou ...
- 精准 iOS 内存泄露检测工具
MLeaksFinder:精准 iOS 内存泄露检测工具 发表于 2016-02-22 | zepo | 23 Comments 背景 平常我们都会用 Instrument 的 Lea ...
- iOS内存管理 ARC与MRC
想驾驭一门语言,首先要掌握它的内存管理特性.iOS开发经历了MRC到ARC的过程,下面就记录一下本人对iOS内存管理方面的一些理解. 说到iOS开发,肯定离不开objective-c语言(以下简称OC ...
- 浅谈iOS中的视图优化
引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为 ...
- iOS 内存泄漏排查以及处理
使用Xcode7的Instruments检测解决iOS内存泄露 文/笨笨的糯糯(简书作者)原文链接:http://www.jianshu.com/p/0837331875f0作为一名iOS开发攻城 ...
- 讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(下)- block中任性用self
前言: 在处理完框架内存泄漏的问题后,见上篇:讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(中)- IOS不为人知的Bug 发现业务代码有一个地方的内存没释放,原因很也简单: ...
随机推荐
- SAP后台JOB的Submit & EVENT JOB
SM35执行一个后台作业后,想及时停止, 运行SM37后,点击ctr + F1停止活动的作业,系统根本就没反应. 解决方法: 第一步:SM50, 找到,Ty.列为BGD的(Background),然后 ...
- java设计模式1--单例模式
1:单例模式简介 单例模式是一种常用的软件设计模式,它确保某个类只有一个实例,而且自行实例化并向整个系统提供唯一的实例.总而言之就是在系统中只会存在一个对象,其中的数据是共享的 特点: 单例类只能有一 ...
- content is king – Bill Gates (1/3/1996) 内容为王 - 比尔盖茨
以下中文版本由谷歌翻译 内容为王 - 比尔盖茨(1/3/1996) 内容是我期望在互联网上赚取大部分真钱的地方,就像在广播中一样. 半个世纪前开始的电视革命催生了许多行业,包括制造电视机,但长期的赢家 ...
- JZOJ 5462. 【NOIP2017提高A组冲刺11.8】好文章
5462. [NOIP2017提高A组冲刺11.8]好文章 (File IO): input:article.in output:article.out Time Limits: 1000 ms M ...
- stm32 flash和sram
FLASH是用来存储程序的,SRAM是用来存储程序运行中的中间变量
- Docker从零到实践过程中的坑
欢迎指正: Centos7 下的ulimit在Docker中的坑 http://www.dockone.io/article/522 僵尸容器:Docker 中的孤儿进程 https://yq.ali ...
- Paper Folding UVA - 177 模拟+思路+找规律
题目:题目链接 思路:1到4是很容易写出来的,我们先考虑这四种情况的绘制顺序 1:ru 2:rulu 3:rululdlu 4:rululdluldrdldlu 不难发现,相较于前一行,每一次增加一倍 ...
- 纯javascript验证,100行超精简代码。
这篇文章转自--寒飞,原帖地址http://blog.csdn.net/luoyehanfei/article/details/42262249 QQ交流群235032949 纯javascript验 ...
- 极简Node教程-七天从小白变大神(一:你需要Express)
如果说用一句话来概括Node那就是:它开启了JavaScript服务器端语言. Node系列的文章并不会从一开始长篇概论的讲Node的历史,安装,以及其他很琐碎的事情.只会专门介绍关于Node或者准确 ...
- MySQL5.7(三)数据表操作
概念在数据库中,数据表是数据库中最重要.最基本的操作对象,是数据存储的基本单位.数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的.每一行代表一条唯一的记录,每一列代表记录中的一个域.1.创 ...