美文网首页
性能优化

性能优化

作者: 奋斗的小牛06107 | 来源:发表于2018-04-08 20:49 被阅读0次

启动性能分析

Mach-o

Mach-o文件的类型:

Mach的结构

1:Header
2:Load Commands
3:data

新建项目,在ViewController里面实现+load方法,打断点,在main里面打断点。发现先走的是+load方法,断点前有很多栈信息 其中有_dyld_start

分析dyld,dyld是什么?
dyld -> dynamic loader 动态加载器
当系统吧dyld加到App进程后dyld的操作过程:
dyld -> load dylibs -> rebase -> bind -> Objc -> 其他初始化

优化之前要测量一下启动时间

  • main函数之前的消耗时间的测量:添加一个环境变量就可以在控制台将这个时间的数据打印出来。


    image.png

动态库对App启动时间影响的实测
http://www.cocoachina.com/ios/20161125/18179.html

  • main函数之后的测量:
    利用CFAbsoluteTimeGetCurrent() 获取时间




    可以得到main之后的时间

启动时间优化的方向:

  • 耗时操作要进行异步处理
  • loading的广告要做缓存
  • 减少root页面viewdidload和viewwillappear里面的操作
  • 未使用的动态库及时清理掉

内存优化

如何检测内存方面的问题?

遇到EXC_BAD_ACCESS崩溃的时候,一般就是出现野指针的时候。我们开启僵尸对象检测就可以找到僵尸对象。
开启步骤:Product->Scheme->Edit Scheme->Diagnostics->勾选Zombie Objects
开启之后再运行,控制台会给出一些信息。从信息中可以分析出僵尸对象。



这里说明对象已经被释放了,还依然被使用。

assign与weak,它们都是弱引用类型,最大的区别是什么?
weak 声明的变量对象释放后,制动赋值为nil
assign声明的变量对象释放后,不会自动赋值为nil,会造成野指针错误。

内存泄漏的检测方法

  1. 静态检测方法
    1)手动内存检测 shift+command+B
    2)自动内存检测 buildSetting -> Analyze during Build -> YES
  2. 动态检测方法
    instruments 打开方式 product -> profile
  3. 析构方法(打印dealloc,看看是否调用了)
  4. 第三方内存检测工具
    MLeaksFinder 不需要做任何操作 pod进去就可以使用了。原理就是runtime实现的。


    instruments 工作流程

相关文章

  • Android性能优化 - 消除卡顿

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - Tra...

  • Android性能优化 - 内存优化

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - Trac...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • Awesome Extra

    性能优化 性能优化模式 常见性能优化策略的总结 Spark 性能优化指南——基础篇 Spark 性能优化指南——高...

  • 常用的后端性能优化六种方式:缓存化+服务化+异步化等

    性能优化专题 前端性能优化 数据库性能优化 jvm和多线程优化 架构层面优化 缓存性能优化 常用的后端性能优化六大...

  • webpack 性能优化

    webpack性能优化 开发环境性能优化 生产环境性能优化 开发环境性能优化 优化打包构建速度 优化调试功能 生产...

  • iOS性能优化 - 整理

    本文主要包含: 性能优化 - 卡顿性能优化 - 耗电优化性能优化 - APP启动优化安装包瘦身 一  性能优化 -...

  • 【React.js 20】React性能优化

    React性能优化 React性能优化主要分三块: React 组件性能优化 属性传递优化针对单组件性能优化,很多...

  • Android性能优化(下)

    Android性能优化 内存泄漏和性能优化方式Android性能优化(上)数据库优化和网络优化Android性能优...

网友评论

      本文标题:性能优化

      本文链接:https://www.haomeiwen.com/subject/bllphftx.html