- 博客(21)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 iOS开发-性能优化-离屏渲染优化
离屏渲染就是在当前屏幕缓冲区以外,新开辟一个缓冲区进行操作。为什么要避免离屏渲染?CPU GPU 在绘制渲染视图时做了大量的工作。离屏渲染发生在 GPU 层面上,会创建新的渲染缓冲区,会触发 OpenGL 的多通道渲染管线,图形上下文的切换会造成额外的开销,增加 GPU 工作量。如果 CPU GPU 累计耗时 16.67 毫秒还没有完成,就会造成卡顿掉帧。圆角属性、蒙层遮罩 都会触发离屏渲染。指定了以上属性,标记了它在新的图形上下文中,在未愈合之前,不可以用于显示的时候就出发了离屏渲..
2020-05-18 18:26:58
394
原创 iOS多线程:GCD
异步执行任务的技术之一, 用我们难以置信的非常简洁的记述方法,实现了极为复杂繁琐的多线程编程。dispatch_async函数追加赋值变了queue的Dispatch Queue中,这样可以在另一线程中执行。存在两种DIspatchQueue,一种事等待现在执行中处理的SerialDisPatch,一种是不等待现在执行中的ConcurrentDispatchQueueSerialDisPatch 串行ConcurrentDispatchQueue 并发1...
2020-05-13 16:59:02
500
原创 iOS多线程:NSOperation
NSOperation是苹果提供给我们的一套多线程解决方案。实际上NSOperation是基于GCD更高一层的封装,但是比GCD更简单易用、代码可读性也更高。为什么要使用 NSOperation、NSOperationQueue?1、可添加完成的代码块,在操作完成后执行。2、添加操作之间的依赖关系,方便的控制执行顺序。3、设定操作执行的优先级。4、可以很方便的取消一个操作的执行。5、使用 KVO 观察对操作执行状态的更改:isExecuteing、isFinished、isCa.
2020-05-11 12:45:18
468
原创 iOS多线程:NSThread
NSThreadNSThread是苹果官方提供的,使用起来比pthread更加面向对象,简单易用,可以直接操作线程对象。不过也需要程序员自己管理线程的生命周期(主要是创建),我们在开发的过程中偶尔使用NSThread。先创建线程,再启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];[thread start]; // 线程加入线程池等待C...
2020-05-11 12:39:46
221
原创 iOS多线程:pthread
1、多线程的原理在同一时间内,(单核)CPU只能处理1条线程,只有1条线程在工作(执行)。因此,多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象。思考:如果线程非常非常多,会发生什么情况?1、CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源2、每条线程被调度执行的频次会降低(线程的执行效率降低)2、多线程的优缺点多线程的优点1、能适当提高程序的执行效率2、能适当提高资源利用率.
2020-05-11 12:38:19
217
转载 iOS各做锁的创建
前言一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源,比如多个线程访问同一个对象、同一个变量、同一个文件和同一个方法等。因此当多个线程访问同一块资源时,很容易会发生数据错误及数据不安全等问题。因此要避免这些问题,我们需要使用“线程锁”来实现。下面从以下几个方面来谈谈iOS创建锁的方法:1、使用关键字1-1、@synchronized(互斥锁)优点:使用@synchronized关键字可以很方便地创建锁对象,而且不用显式的创建锁对象。缺点:会隐式添加一个异常处理来保护代码,该异
2020-05-10 23:58:35
199
原创 iOS死锁
iOS 死锁产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件:进程已获得的资源,在...
2020-05-10 23:55:28
1281
转载 iOS消息转发第三阶段实现多重代理
消息转发第三阶段实现多重代理结合上面的流程分析,我么可以发现,要实现多重代理的分发,我们需要让Runtime系统运行到forwardInvocation这一步,并在该方法中将delegate方法分发到其他各个对象中去:- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector{ NSMethodSignature *signature = [super methodSignatureForSelector:aSel...
2020-05-10 19:39:16
625
原创 iOS-消息转发和应用
对象收到一个它无法响应的方法到崩溃;消息转发机制共分为3大步骤:1、动态解析。先询问接受者的类所属的类,看看有没有动态的添加方法。resolveInstanceMethod,resolveClassMethod2、快速消息转发。如果1执行完了也没有动态新增方法,那运行期系统就请接收者看看有没有其他对象能处理这条有消息,有的话就把消息转发给哪个对象。forwardingTargetForSelector3、完整的消息转发机制。如果2没有,那运行期系统会把消息有关的全部细节写到NSInvocat
2020-05-10 19:33:55
452
原创 iOS-反射机制和应用
反射机制iOS反射机制:运行时选择创建哪个实例,并动态选择调用哪个方法。获取Class的三种方法// 通过字符串获取class Class class = NSClassFromString(@"NSString"); NSLog(@"class type : %@", class); // 直接用class 来创建对象 ,通过对象来获取classid str = [[class alloc] init]; NSLog(@"%@", [str clas...
2020-05-10 18:05:10
441
原创 苹果App性能优化:启动优化
启动优化热启动:当用户按下home键的时候,iOS的App并不会马上被kill掉,还会继续存活若干时间。理想情况下,用户点击App的图标再次回来的时候,App几乎不需要做什么,就可以还原到退出前的状态,继续为用户服务。这种持续存活的情况下启动App,我们称为热启动,冷启动:从用户点击App图标开始到appDelegate didFinishLaunching方法执行完成为止,相对而言冷启动就是App被kill掉以后一切从头开始启动的过程。冷启动比热启动重要,首先App冷启动的情况App启动过
2020-05-08 19:31:30
631
原创 隐私政策
隐私政策辰辰日记尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本平台会按照本隐私权政策的规定使用和披露您的个人信息。但本平台将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本平台不会将这些信息对外披露或向第三方提供。本平台会不时更新本隐私权政策。您在同意本平台服务使用协议之时,即视为您已经同意本隐私权政策全部内容。...
2019-09-06 09:55:52
268
原创 苹果iCloud转区指南-最新教程
苹果iCloud转区指南-最新教程,直接在https://www.icloud.com上修改的方法;最近苹果官网发布新的 iCloud 支持文档,宣布与云上贵州大数据产业发展有限公司达成合作,2018 年 2 月 28日起,国区 iCloud 账户将转由「云上贵州」运营,也就是说,你的 Apple ID 在中国区,你的 iCloud 服务也会转由「云上贵州」运营。首先我们先推广一下Ap
2018-01-25 10:44:02
4441
原创 睡到自然醒
睡到自然醒简介-记录梦话与呼噜;-分析睡眠状态;-睡眠音乐入睡停止;-智能闹钟清晨唤醒;适用于:-夜晚挺睡眠音乐,睡着后自动停止;-运动、健身、跑步过后的夜晚睡眠;-失眠困扰,需要催眠曲辅助的人群;-需要摆脱早晨被闹钟惊醒的困扰;-压力大、焦虑、饮酒、咖啡、宵夜对睡眠质量健康的影响;-了解睡眠效率及质量,包括深度睡眠、潜睡
2018-01-21 18:39:30
398
2
原创 计算器-最新最火计算器
计算器-最新最火计算器永久记录完整的等式过程特色:标准计算器支持iOS7以上支持iPad,可以作为iPad计算器使用,是iPad计算器的理想选择支持iPhone X支持语音播放支持清屏调教了最佳手感的触摸控制专门为高分辨率的设备优化过启动快、速度快、有永久记录记录完整的计算过程方便查找支持记录换行,方便区分
2018-01-21 18:05:34
482
原创 Zip神器
Zip神器多功能Zip解压缩工具Zip神器是一款多功能的解压缩工具,同时支持iPad、iPhone和iPod touch。支持手势密码锁。支持iOS7以上。- 打开和查看多种文档:DOC,EXCEL,PPT,PDF,TXT,网页,JPG,GIF,PNG,视频等;-显示文件大小;-显示文件创建时间;-支持从其他应用导入文件;-支持手势密码和指纹解锁
2018-01-21 18:01:32
332
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-06-23 13:48:23
169
Mac 版 FileZilla_3.30.0_macosx-x86_setup_bundled
2018-03-07
jstl-api-1.2.jar jstl-impl-1.2.jar mysql-connector-java-5.1.10-bin.jar
2017-04-09
清爽夏日九宫格日志网源码
2017-04-09
struts2学习简单例子
2016-03-21
OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码
2015-07-06
mysql正常启动后一直报错,直到mysql死掉
2018-01-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人