zoukankan      html  css  js  c++  java
  • 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];

    这样就最大限度的节省了宝贵的内存空间

  • 相关阅读:
    设计模式学习笔记之状态模式
    设计模式学习笔记之观察者模式
    设计模式学习笔记之模板方法模式
    设计模式学习笔记之策略模式
    设计模式学习笔记之装饰者模式
    Comparable和Comparator接口的比较
    Java中关键字continue、break和return的区别
    斐波那契数列-兔子问题
    用Java编程计算猴子吃桃问题
    (转载)Java多线程入门理解
  • 原文地址:https://www.cnblogs.com/xingchen/p/3530949.html
Copyright © 2011-2022 走看看