自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sindri的小巢

iOS小码农一枚

  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 监控启动崩溃

原文地址相较于正常的崩溃问题,启动crash造成的损失要远远大得多。正常来说,如果有足够强健的构建发布系统,大多数时候能在版本上线之前及时发现问题并且修复,但是仍然存在小概率的线上意外。启动crash一般同时具备损害严重以及难以捕获两大特点启动过程从应用图标被用户点击开始,直到应用可以开始响应发生了很多事情。正常来说,尽管我们希望crash监控工具启动的尽可能早,但接入方往往总...

2018-05-12 00:52:36 592

原创 被遗弃的线程

原文地址main函数作为程序运行的入口,正常情况下,函数会执行毫秒级别的操作,然后返回一个0表示程序正常终止。为了避免应用启动即终止,苹果设计了runloop机制来维持线程的生命,runloop在每一次的循环当中不断的去处理事件,或控制线程的休眠和唤醒。runloop还结合了libdispatch的任务派发机制,可以循环地处理async到队列中的任务启动runloop从runl...

2018-04-14 11:29:01 213

原创 奇怪的GCD

原文地址多线程一直是我相当感兴趣的技术知识之一,个人尤其喜爱GCD这个轻量级的多线程解决方案,为了了解其实现,不厌其烦的翻阅libdispatch的源码。甚至因为太喜欢了,本来想要写这相应的源码解析系列文章,但害怕写的不好,于是除了开篇的类型介绍,也是草草了事,没了下文恰好这几天好友出了几道有关GCD的题目,运行结果出于意料,仔细摸索后,发现苹果基于libdispatch做了一些有趣的...

2018-03-03 15:17:48 190

原创 iOS-一对一设计

原文地址一对一one to one并不是某种业务上的具体需求,它仅仅是一种数据存储上的设计。one to one要求一个变量能且最多只能匹配一个变量,这听着很绕口,举个常见的结构例子就是key-value匹配。不同的编程语言提供了高层级的key-value存储结构,例如dictionary字典,被这些高层级的存储结构宠坏了的我们不知是否思考过这么一个问题: dictionary是怎么通

2018-01-21 21:33:29 235

原创 iOS-倒计时设计

原文地址计算机是不存在倒计时这个概念的,所有的倒计时设计来源于对定时器的运用:给予一个deadline,以秒为时间间隔,在每次回调时刷新屏幕上的数字。倒计时的实现几乎没有门槛,无论NSTimer也好,GCD也罢,甚至使用CADisplayLink都能用来制作一个倒计时方案。但同样的,低门槛也意味着方案的上下限差也很大,本文打算谈谈如何设计一个倒计时方案为什么要写这篇文章事实上,倒计

2018-01-06 13:57:33 952

原创 iOS-隐式动画的性能瓶颈

原文地址隐式动画实现的背后体现了核心动画精心设计的许多机制。在layer的属性发生改变之后,会向它的代理方请求一个CAAction行为来完成后续的工作,系统允许代理方返回nil指针。一旦这么做,修改属性的工作最终移交给CATransaction处理,由修改的属性值决定是否自动生成一个CABasicAnimation。如果满足,此时隐式动画将被触发。关于CATransaction在核

2017-12-14 23:09:53 607

原创 iOS-生产者消费者

原文地址前言在计算机世界当中,数据在不断产生的同时,也在不停地被处理着。产生数据的一方被我们称作生产者,而另一方则被称为消费者。在网络请求中,服务器是提供数据的生产者,而用户是数据的消费者。伴随着互联网的高速发展,即便是百万乃至千万用户级的访问量也并非罕见,而服务器在面临如此高的并发请求时仍能做到游刃有余。这背后的技术并不是三言两语能够说清的,但其中关系着一个重要的模式——生产者-消费者模式 生

2017-11-05 12:20:31 734

原创 iOS-保护你的crash

原文地址如何去衡量一款应用的质量好坏?为了回答这一问题,APM这一目的性极强的工具向开发顺应而生。最早的APM开发只关注于crash、cpu这类的硬性指标。而随着移动开发市场的成熟,越来越多的数据指标也被加入到了APM的采集范畴中,包括感官体验相关的数据和使用习惯等。然而,无论APM最终如何发展,其最核心的采集指标一定是crash数据。一套完善的crash监控方案可以快速的发现并协助完成问题定位,从

2017-11-03 17:56:24 360

原创 iOS-野指针定位

野指针 当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称野指针野指针异常堪称crash界的半壁江山,相比起NSException而言,野指针有这么两个特点……

2017-11-01 12:47:14 1276

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除