2020年12月3日

026*:冷热启动优化、二进制重排、clang插桩(Header、Load Commands 、segment)(main函数前、main函数后)重签名 、ASLR、(PageFault 、System Trace、order文件)-fsanitize-coverage=func,trace-pc-guard Dl_info

摘要: 问题 1:(虚拟内存、ASLR)(PE、ELF、Mach-O) 2:(Header、Load Commands 、segment) 3:Header(cputype、filetype) 4:Load Commands(动态链接器的位置、程序的入口、依赖库的信息、代码的位置、符号表的位置) 5:(ma 阅读全文

posted @ 2020-12-03 16:18 风zk 阅读(1073) 评论(0) 推荐(0) 编辑

025*:LLVM和clang插件开发(预处理编译阶段--编译阶段(词法、语法等的分析、生成中间代码IR【 .ll文件、IR优化、bitCode优化.bc】)--汇编代码 .s文件--生成目标文件 .o文件 --链接【产生的.o文件和.dylib、.a文件链接】--mach-o可执行文件)

摘要: 问题 (预处理编译阶段--编译阶段(词法、语法等的分析、生成中间代码IR【 .ll文件、IR优化、bitCode优化.bc】) --汇编代码 .s文件 --生成目标文件 .o文件 --链接【产生的.o文件和.dylib、.a文件链接】--mach-o可执行文件) 目录 1:概念 2:编译流程 3:自 阅读全文

posted @ 2020-12-03 11:29 风zk 阅读(523) 评论(0) 推荐(0) 编辑

024*:Block的原理 (Block_layout、__main_block_impl_0、__Block_byref_a_0)(_Block_copy、_block_invoke)(_Block_copy、_Block_byref_copy、_Block_object_assign、_Block_object_dispose)

摘要: 问题 1:block的本质是对象、函数、结构体,由于block函数没有名称,也被称为匿名函数 2: __weak __strong __block 3:(NSGlobalBlock NSMallocBlock NSStackBlock) 4:(_Block_copy、_block_invoke) 5 阅读全文

posted @ 2020-12-03 11:27 风zk 阅读(283) 评论(0) 推荐(0) 编辑

023*:定时器和锁原理 ( Dispatch_source_t NSTimer CADisplayLink) @synchronized(SyncList SyncData threadCount lockCount )(NSLock当前线程一把锁)(NSRecursiveLock当前线程递归锁相当多把锁)(NSCondition线程+锁)(NSConditionLock线程、条件和锁)

摘要: 自旋锁和互斥锁:区别 1:而Spin lock(自旋锁)则不然,它属于busy-waiting类型的锁,如果线程A是使用pthread_spin_lock操作去请求锁,那么线程A就会一直在Core0上进行忙等待并不停的进行锁请求,直到得到这个锁为止。 自旋锁(Spin lock) 自旋锁与互斥锁有点 阅读全文

posted @ 2020-12-03 11:26 风zk 阅读(171) 评论(0) 推荐(0) 编辑

022*:GCD源码底层探索 (dispatch_group_async dispatch_group_enter dispatch_group_leave) _dispatch_call_block_and_release (dx_push pthread_creat dx_invoke)dispatch_semaphore_signal wait create

摘要: 问题 _dispatch_call_block_and_release 执行任务 同步回调,block执行 block回调:底层通过dx_push递归,会重定向到根队列,然后通过pthread_creat创建线程,最后通过dx_invoke执行block回调(注意dx_push和 dx_invoke 阅读全文

posted @ 2020-12-03 11:25 风zk 阅读(627) 评论(0) 推荐(0) 编辑

021*:GCD 【dispatch_async dispatch_queue_t】 dispatch_group_t、dispatch_barrier_async 、dispatch_semaphore_t、dispatch_once_t、dispatch_apply、dispatch_after、dispatch_source_t 、pthread 、NSThread、NSOperation

摘要: 问题 dispatch_sync将任务 block通过 push到队列中,然后按照 FIFO去执行。 dispatch_sync造成死锁的主要原因是堵塞的tid和现在运行的tid为同一个 dispatch_async会把任务包装并保存,之后就会开辟相应线程去执行已保存的任务。 semaphore主要 阅读全文

posted @ 2020-12-03 11:20 风zk 阅读(165) 评论(0) 推荐(0) 编辑

020*:多线程基础知识:(进程、线程、线程池)(线程生命周期【新建、就绪、运行、阻塞、销毁】)(锁【自旋锁 原子锁、互斥锁】)(线程、runloop、NSPort)(线程通讯)

摘要: 问题 (进程、线程、线程池) (线程生命周期【新建、就绪、运行、阻塞、销毁】) (锁【自旋锁 原子锁、互斥锁】) (线程、runloop、NSPort) (线程通讯) 目录 1:进程与线程 2: 多线程的优缺点 3:多线程的内存消耗 4:多线程处理方案 5:线程生命周期 6:线程池的原理 7:线程优 阅读全文

posted @ 2020-12-03 10:17 风zk 阅读(131) 评论(0) 推荐(0) 编辑

019*:内存五大区:(栈、堆、全局静态区、常量区、代码区)(线程、函数栈、栈帧)

摘要: 问题 目录 1:内存基础概念 2:内存五大区 3:函数栈 预备 正文 一、内存基础概念 1.1 物理内存 & 虚拟内存 物理内存(Physical Memory):指通过物理内存条而获得的内存空间,和虚拟内存对应;主要作用是:设备运行时为操作系统和各种程序提供临时储存空间;iPhone 6 和 6 阅读全文

posted @ 2020-12-03 10:16 风zk 阅读(632) 评论(0) 推荐(1) 编辑

导航