请选择 进入手机版 | 继续访问电脑版

iOS Xcode 自带检测方法 (检查内存泄漏方法)

在说Xcode自带测试方法前先讲下程序在内存中的空间划分, 一般可分为5个部分:

#1. BSS段, 存放未初始化的全局变量.?BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

#2. 数据段, 存放已初始化的全局变量和全局静态变量.?数据段属于静态内存分配

#3. 代码段, 存放程序执行代码

#4. 堆 ? ? ?, 存放进程中被动态分配的内存段.

#5. 栈 ? ? ?, 存放函数的参数值和局部变量, 由编译器自动分配和释放.

?

常说的内存管理是对堆内存的管理.

内存泄露指动态分配开辟出来的空间, 在使用完毕后未释放, 或者未被回收直至程序结束.

?

Xcode自带有一套测试工具

?

Analyze - 静态分析

如下图位置:

会自动检查代码中是否有以下错误:

#1. 是否创建了一个对象, 但并没有使用它

#2. 是否创建了一个对象或者指针, 对其初始化后却一直没有读取过

#3. 是否调用的让某个对象引用计数加1的方法, 却没有调用引用计数减1的方法

#4. 是否有错误返回类型.

运行后如果检查到有上述错误, 会有蓝色的提示, 如图

?

下面再就是常用的Instruments, 使用前注意要把xocde运行模式改为release

打开Instruments是选择上面第一张图中的Profile, 包含以下测试功能:

我们介绍下常用的Instruments三杰:

?

Leaks - 内存泄露检查

这样一般如果有做过静态检查Analyze就比较少会出问题, 运行的截图:

打开后手机运行可能会慢一些, 要尽量打开程序中的所有界面检查下. 如果有内存泄露的话会在Leak check那一行出现x的符号

点击x符号能看到详细错误信息

?

Allocations - 内存分配检查

界面如下图

?

Time Profile - 运行耗时检查

能查看各个耗时的项目, 对于耗时较多的项目可以双击耗时项目直接定位到代码

?

?

点开可能定位到代码, 下图中显示的301x标识这段代码运行耗时301ms, 如果有较耗时的代码就需要进行优化

?

上面是Xcode自带的一些检查工具, 但最重要的还是要自己多注意代码规范?


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

粉丝0 阅读191 回复0
上一篇:
使用Toolbar + DrawerLayout快速实现高大上菜单侧滑发布时间:2018-01-07
下一篇:
Android Studio使用小技巧发布时间:2018-01-07

精彩阅读

推荐视频

阅读排行榜

专访

关注官方微信

微信号:##

微博:##

QQ1群:653616923

QQ2群:536342758

服务QQ:

769993795

(工作日:周一至周五 9:00-16:00)
#

Archiver-手机版-小黑屋-站长统计-sitemap-sitemap- 蓝盘网

Powered by Discuz! X3.4© 2017-2018 Comsenz Inc.  豫ICP备17005739号-3