iOS 调试与性能优化
番薯大佬
踢足球的码农一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
iOS 调试
关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案随着用xcode开发的深入,相信很多同学都对出现SIGBAT或者EXC_BAD_ACCESS的问题,编译是对的,运行时做了某些操作,就跳到main函数里面了,然后出现SIGBAT或者EXC_BAD_ACCESS的提示,提示的信息无法正确判断出错原因。 下面给大家提供一个方法,会在控制台中输出出现SIGBA转载 2014-05-13 22:20:15 · 955 阅读 · 0 评论 -
iOS性能优化策略
一:性能优化策略性能问题的处理流程发现/重现问题利用工具剖析形成假设改进代码和设计在以上的四个步骤中循环反复,直到问题解决。性能优化的主要策略:不要做无用功:不要在启动时花几百ms来做logging,不要为同样的数据做多次查询试图重用:对于创建过程昂贵的对象,要重用而不是重新创建Table Vi转载 2014-05-13 22:11:42 · 886 阅读 · 0 评论 -
僵尸对象导致crash(Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT))
APP运行过种中闪退,没有打印出任何提示信息,全局断点All Exceptions也没有起作用,而是直接进入main函数,并显示信息"Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)"。如下图所示:出现这种情况的闪退,通常是由于调用了一个已经被释放掉的、不存在的僵尸对象。查找和解决僵尸对象的方法如下:1、在scheme中打开对象跟踪的属性原创 2017-02-21 15:30:49 · 29362 阅读 · 0 评论 -
内存优化autoreleasepool的使用
在ARC内存管理模式下,使用 autoreleasepool 主要来避免频繁申请/释放内存,从页达到优化内存的效果。根据 Apple的文档(https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html),使用原创 2017-02-13 14:56:20 · 689 阅读 · 0 评论 -
性能优化检测Instruments-time profile的使用
使用Instruments中的time profile工具进行运行时间的耗时检测。打开Instruments(注意:需要先打开要检测的项目文件,然后Xcode的菜单栏中选择打开Instruments)方法1:方法2:选择time profile工具,并打开运行查看(注意:选项配置)查看源码原创 2017-02-14 15:50:51 · 6913 阅读 · 0 评论 -
性能优化Instruments-Leaks工具使用
性能优化中使用Instruments的Leaks工具进行内存泄露的检测。内存泄露,即内存被分配及使用过后,即使不再使用的该内存,也一直未被释放,从而造成无法被其他对象使用。在ARC内存管理模式下,产生内存泄露的的情况如下:(1)动画效果产生的无限循环(2)多个对象间的相互强引用 (3)定时器NSTimer的使用(4)代码块block的强引用解决方法:(1)在视图控制原创 2017-02-14 16:44:09 · 3859 阅读 · 0 评论 -
性能优化Instruments-Allocations工具使用
性能优化中使用Instruments-Allocations工具进行内存分配使用监测。内存爆增,且持续不释放的情况,除了是内存泄露外,还有就是对性能代码质量不过关导致。通常造成内存爆增的情况主要有:(1)不断的创建UI视图,主要体现在对列表视图的使用(UITableView,UICollectionView);(2)不断的进行数据运算,特别是大数据的运算;(3)图片处理;(原创 2017-02-14 17:08:53 · 4380 阅读 · 0 评论 -
性能优化-UITableView的优化使用
TableView的性能优化1、使用reuseIdentifier来重用cells2、尽量使所有的view opaque,包括cell自身3、缓存行高4、减少subviews的数量,同时使用drawRect进行绘制5、如果cell内现实的内容来自web,使用异步加载,缓存请求结果6、避免渐变,图片缩放,后台选人7、使用shadowPath来画阴影8、尽量不使原创 2017-02-13 17:13:17 · 2036 阅读 · 0 评论 -
崩溃 [XXXX respondsToSelector:]: message sent to deallocated instance 0x7fe2d3e404f0
模拟器运行时崩溃,并打印出错误信息[XXXX respondsToSelector:]: message sent to deallocated instance 0x7fe2d3e404f0如果没有打印出错误信息的话,而是堆栈信息,这时可以进行相关的设置。 1、Xcode-菜单栏-Product-Scheme-Edit scheme-Run Debug-Diagnostics 2、选择:Zom原创 2017-11-08 13:19:07 · 1440 阅读 · 0 评论 -
Analyze查找静态内存泄漏
使用Analyze查找静态内存泄漏,Analyze静态分析只是一个理论上的预测过程,其查找到的内存泄漏称为可疑泄漏点,之所以称为“可疑泄漏点”,是因为这些点未必一定泄漏,确认这些点是否泄漏还要通过Profile动态分析工具Instruments中的Leaks和Allocations跟踪模板。操作入口:Xcode——菜单栏——Product——Analyze Analyze查看的问题通常包原创 2017-11-15 17:11:09 · 1055 阅读 · 0 评论 -
iOS 中的异常捕捉 try...catch...finally使用。
异常crahs情况,代码示例:NSMutableArray *array = [NSMutableArray arrayWithObjects:@"0", @"1", nil]; // crash[array removeObjectAtIndex:10];在开发APP时,我们通常都会需要捕获异常,或对异常进行处理预防,防止应用程序突然的崩溃,防止给予用户不友好的体验。对可能出现的异常...原创 2018-05-03 15:32:45 · 3599 阅读 · 0 评论 -
clang命令编译OC成C++文件
效果图操作说明(终端命令操作)1、进入要编译文件所在目录2、编译命令:// 命令clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk 编...原创 2018-06-28 11:03:24 · 2320 阅读 · 0 评论 -
XCode的一些调试技巧
XCode的一些调试技巧罗朝辉 (http://blog.youkuaiyun.com/kesalin/)CC 许可,转载请注明出处XCode 内置GDB,我们可以在命令行中使用 GDB 命令来调试我们的程序。下面将介绍一些常用的命令以及调试技巧。po 命令:为 print object 的缩写,显示对象的文本描述(显示从对象的 description 消息获得的字符串信息)。转载 2014-05-13 22:27:49 · 482 阅读 · 0 评论 -
调试查找crash
在iOS开发中,如何快速定位到应用程序crash的位置呢?答案很简单,只要简单的设置一个全局断点就可以了。具体设置方法如下:原创 2014-11-25 23:52:23 · 686 阅读 · 0 评论 -
页面间跳转的性能优化(二)
在页面间跳转的性能优化(一)中介绍了一些基础知识,讲述了情形一与情形二的优化方式及原理,但有许多人对情形二最后两种处理方式的原理表示不理解,不清楚处理过程,接下来会详细分步地讲述这两种方式的原理,如果你还没看过页面间跳转的性能优化(一),请先阅读。点击下载Demo,或https://github.com/IOSDelpan/SmoothTransitionDemo。页面间的跳转转载 2016-08-02 15:48:12 · 799 阅读 · 0 评论 -
iOS 内存优化和调试技巧
基础部分 1: 图片内存大小小结 a: 图片:是占用内存的大户,尤其是手机游戏图片资源众多。对图片资源在内存中占用量的计算成为J2ME游戏开发者的经常性工作,CoCoMo来解释一下如何计算图片在内存中的占用量:内存占用量=宽*高*像素字节数,其中像素字节数因机型而异。 例如一张64*64的图片在7210上的内存占用量=64*64*1.5=6144(字节)=6K、在转载 2014-05-13 22:12:35 · 790 阅读 · 0 评论 -
iOS性能优化—— Instruments
转载原址:http://www.jianshu.com/p/9e1f0b44935c最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧.小结如下.Instruments使用技巧关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instr转载 2016-04-09 18:51:43 · 536 阅读 · 0 评论 -
ios 性能优化
核心动画在设计的时候就考虑了性能。它首先是层级别的呈现,并且设计运行在小型的设备上(iphone和itouch),这些设备内存有限,并且cpu和gpu不如桌面电脑上的强大,核心动画是被设计的比较高效的,但是并不意味着你就可以在代码中随便用。任何复杂的系统都会考虑性能的问题。幸运的是核心动画在处理复杂动画时,已经帮你处理的很多性能问题,你也需要改善一下代码让基于核心动画的应用程序具有更好的性转载 2014-05-13 22:15:48 · 661 阅读 · 0 评论 -
iOS应用性能调优的25个建议和技巧
写在前面本文来自iOS Tutorial Team的 Marcelo Fabri,他是Movile的一名 iOS 程序员。这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_。性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然转载 2014-05-13 22:14:42 · 597 阅读 · 0 评论 -
页面间跳转的性能优化(一)
现在App的页面越来越复杂,页面初始化的工作越来越多,加载页面所需的时间也随之增长,如果页面加载的时间过长,这将会影响App的流畅度及用户体验,我们需要解决这一问题。观察过一些日常使用的App,页面间跳转的性能问题总结为以下三种情形: 1).A页面跳转到B页面,由于B页面需要加载大量的数据,所以导致页面跳转延迟。 2).A页面跳转到B页面,由于B页面需要加载大量UI元素转载 2016-04-09 23:40:07 · 2397 阅读 · 0 评论 -
iOS程序性能优化
[深入浅出Cocoa]iOS程序性能优化 罗朝辉 (http://blog.youkuaiyun.com/kesalin)CC 许可,转载请注明出处 iOS应用是非常注重用户体验的,不光是要求界面设计合理美观,也要求各种UI的反应灵敏,我相信大家对那种一拖就卡卡卡的 TableView 应用没什么好印象。还记得12306么,那个速度,相信大家都受不了。为了提高 iOS 的运行速度,下面我将抛砖转载 2014-05-13 22:09:02 · 710 阅读 · 0 评论 -
代码中断言的使用NSAssert、NSParameterAssert
在开发中,常常会遇到传参的情况,这时候就需要对参数进行有效判断,以保证传递的参数是真实有效的。而在判断时,通常的方法无非就是if...else...之类的使用。其实在开发阶段为了保证参数有真实有效性,我们还可以使用断言进行参数的异常处理。常用的断言有NSAssert、NSParameterAssert。NSAssert和NSParameterAssert的都是系统宏定义。#de原创 2016-07-27 15:00:46 · 1525 阅读 · 0 评论 -
真机调试异常--The identity used to sign the executable is no longer valid
真机调试时,提示The identity used to sign the executable is no longer valid解决:打开钥匙串,找出过期证书,然后将其删除,再重新安装新证书原创 2016-06-16 08:36:51 · 552 阅读 · 0 评论 -
LLDB的简单使用
程序员大部分时间都在调试,有效率的调试可以节省很多时间,下面是LLDB的简单的应用1.首先在程序中打一个断点屏幕快照 2016-03-12 上午11.11.31.png2.点击Action,点击+号,,屏幕快照 2016-03-12 上午11.12.54.png屏幕快照 2016-03-12 上午11.13.32.png转载 2016-04-10 01:20:16 · 443 阅读 · 0 评论 -
UI调试神器 for ios:Reveal的使用与破解
UI调试神器 for ios:Reveal的使用与破解镇楼图移动开发这一块做的最多的无疑就是UI和交互,而UI调试也是移动开发人员经常干的一苦逼事。虽然目前iOS开发工具Xcode集成了UI调试功能(Debug View Hierarchy),但带给我们的却只有失望。接下来就如标题所见,笔者来简单介绍和使用Reveal,因为这东西使用起来并不难,所以着重讲解怎么集成转载 2016-04-10 01:00:07 · 617 阅读 · 0 评论 -
重构AppDelegate
转载引言:可能很多读者可能都有这样的经历,迭代维护多年的系统代码量激增,有些模块的代码自己都觉得丑陋,可是却不敢重构,生怕一不小心被拉取祭天,然后来了个愣头青实习生正好参与这个模块迭代,一顿骚操作后这个模块炸了,那么面对屎山一样焦灼耦合的代码,面对产品汪随着手机壳颜色变化APP主题这种变态需求的时候,如何不在这坨屎山里修修补补,如何重构屎山,让你的代码成为金字塔一样的艺术品?老峰最近读了V...转载 2019-09-03 11:43:14 · 487 阅读 · 0 评论
分享