04 2018 档案
摘要:递归的本质在于部分计算的延迟; 考察二叉树的先根遍历,部分计算在递归时会存储在函数调用栈的下一条命令的内存中。 所谓的下一条命令即为未完成的计算。 在二叉树遍历中,未完成的节点的计算被存储在函数调用栈的栈帧中,具有优先计算权的工作完成以后,这些存储的计算就会被执行。
阅读全文
摘要:分为两步: 1、用类型指定构造类型; 2、构造变量进行赋值;
阅读全文
摘要:背景:这几天在看《高性能Mysql》,在看到创建高性能的索引,书上说mysql的存储引擎InnoDB采用的索引类型是B+Tree,那么,大家有没有产生这样一个疑问,对于数据索引,为什么要使用B+Tree这种数据结构,和其它树相比,它能体现的优点在哪里? 看完这篇文章你就会了解到这些数据结构的原理以及
阅读全文
摘要:AVL树: 最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树。 红黑树: 平衡二叉树,广泛用在C++的STL中。如map和set都是用红黑树实现的。 B/B+树: 用在磁盘文件组织 数据索引和数据库索引。 Trie树(字典树): 用在统计和排序大量字
阅读全文
摘要:关系型数据库工作原理-数据结构(3) 本文翻译自Coding-Geek文章:《 How does a relational database work》。 原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strat
阅读全文
摘要:所有应用软件之中,数据库可能是最复杂的。 MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。 但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。
阅读全文
摘要:数据存储要解决的几个问题: 1、数据的存取; 2、数据的格式变换;从硬盘到内存。数据存储与流动的问题; 3、访问控制(是否可以访问); 4、存储策略(管理)(是否存、存多久、什么时候删); 5、多级存储的同步策略? 存储、管理、流通、同步、访问控制。
阅读全文
摘要:数据的存储结构可用以下四种基本存储方法得到: (1)顺序存储方法 该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。 由此得到的存储表示称为顺序存储结构 (Sequential Storage Structure ),通常借助程序语言的数组描述。
阅读全文
摘要:offscreen-render 什么是offscreen-render?offscreen-render涉及的内容比较多,有offscreen-render那就有onscreen render,onscreen render指的是GPU在当前用于显示的屏幕缓冲区进行渲染,相反offscreen-r
阅读全文
摘要:How an Event Enters a Cocoa Application An event is a low-level record of a user action that is usually routed to the application in which the action
阅读全文
摘要:NSRunloop是一个消息处理机制;是一个循环。 系统通过消息队列和runloop与进程(线程)通信。 runloop是一个机制和体系结构。 它包含以下几个方面: 1、事件源管理; 2、事件的检索与派发循环机制; 3、运行模式、嵌套运行; 4、线程间通信。 事件源 事件源包含以下几个方面: 1、流
阅读全文
摘要:NSPort与NSRunloop的关系是流与消息调度的关系。 NSPort 将流插入到消息调度队列; 相当于 Socket将流插入到应用一样 - (void)launchThread { NSPort *myport = [NSMachPort port]; if(myport) { //让本类持有
阅读全文
摘要:Core Animation 负责将bitmap绑定提交到 GPU; Core Animation一头连着CPU,一头连着GPU。 ZSTest`-[ZSDTCoreTextCell drawRect:](self=0x00007fb28b08ea00, _cmd="drawRect:", rect
阅读全文
摘要:CPU资源消耗的原因和解决方案对象创建轻量对象代替重量对象* 不需要响应触摸事件的控件:CALayer显示* 对象不涉及UI操作,则尽量放到后台线程创建* 包含有CALayer的控件只能在主线程创建和操作* 通过Storyboard 创建视图对象时,其资源消耗会比直接通过代码创建对象要大非常多,在性
阅读全文
摘要:在看博客 UITableView优化技巧 时想到列表的优化主要还是对图片的优化处理。 博文中介绍了按需加载、快速滑动时不加载、异步刷新等等技巧。 这里有个问题, 当我们实例化一个UIImage对象并为UIImageView的image赋值时, 到底有没有将jpg/png转换为bitmap格式呢? 答
阅读全文
摘要:UIImage 缓存是怎么回事? 通过 imageNamed 创建 UIImage 时,系统实际上只是在 Bundle 内查找到文件名,然后把这个文件名放到 UIImage 里返回,并没有进行实际的文件读取和解码。当 UIImage 第一次显示到屏幕上时,其内部的解码方法才会被调用,同时解码结果会保
阅读全文
摘要:首先,什么是Core Graphics和Quartz 2D? Core Graphics:是基于Quartz 2D绘图引擎的一个C语言的API绘图框架。它也是iOS开发中最基本的框架(Framework)之一。两点原因,第一是该框架是每一个iOS应用最初被建立时,就被系统默认添加的三个框架(Foun
阅读全文
摘要:这里可以找到大部分处理逻辑,net/ipv4/Tcp_timer.c:
阅读全文
摘要:KeepAlive并不是TCP协议规范的一部分,但在几乎所有的TCP/IP协议栈(不管是Linux还是Windows)中,都实现了KeepAlive功能 RFC1122#TCP Keep-Alives 如何设置它? 在设置之前我们先来看看KeepAlive都支持哪些设置项 我们讲讲在Linux操作系
阅读全文
摘要:网络通信的目的是为了完成信息交换。 需要:连接、数据结构、时序。 上面说的是协议。 在两个网络节点间完成信息交换。
阅读全文
摘要:GCD 可以看作是集合类的操作; 集合是queue,元素是block; 集合只能添加对象,删除对象由系统完成。 同理,NSOperationQueue也可以看作是一个集合管理器。 dispatch_group A dispatch group is a mechanism for monitorin
阅读全文
摘要:本文转自:http://blog.csdn.net/lxl_815520/article/details/51172917 一,概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可
阅读全文
摘要:应用交互层、多媒体层、核心服务层、系统层。 参考官方文档apple Develop GuidesiOS Technologies IOS分为四级结构,由上到下为可触摸层,媒体层,核心服务层,核心系统层; Paste_Image.png 可触摸层 Cocoa Touch Layer 主要提供用户交互先
阅读全文
摘要:1、进程管理机制-不允许后台进程; 2、用户事件响应优先级; 3、GPU加速; 4、系统内存管理机制; 5、运行机制-机器码直接运行-非虚拟机。
阅读全文
摘要:oc语言的特点分为以下几个方面: 1、运行时; 2、block闭包; 3、内存管理; 4、大中枢派发; 一、运行时的基础是isa 类结构;由clang编译前端支撑。 从它衍生出以下几个特征: 1、消息派发; 2、消息转发机制; 3、KVO、KVC机制; 4、内省机制; 5、分类、类别机制; 6、sw
阅读全文
摘要:无架构,不系统,架构是大型系统的关键。从形上看,架构是系统的骨架,支撑和链接各个部分;从神上看,架构是系统的灵魂,深刻体现业务本质。 应用作为独立可部署的单元,为系统划分了明确的边界,深刻影响系统功能组织、代码开发、部署和运维等各方面,应用架构定义系统有哪些应用、以及应用之间如何分工和合作。 htt
阅读全文
摘要:命令式编程的计算在编译时构建完成; 声明式编程的计算在运行时构建完成; 这里所谓的构建为关键节点的组合。 例如函数式编程,最底层或最基本的运算单元还是命令式编程。
阅读全文
摘要:函数式编程分为两部分: 1、运算的构建; 2、运算的执行。
阅读全文
摘要:Swift 中的协议协议是为方法、属性等定义一套规范,没有具体的实现,类似于Java中的抽象接口,它只是描述了方法或属性的骨架,而不是实现。方法和属性实现还需要通过定义类,函数和枚举完成。 协议定义 // 协议定义通过关键字protocol protocol SomeProtocol { // 协议
阅读全文
摘要:1、oc比较: -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例 2、is 类型检查 Use the type check operator (is) to
阅读全文
摘要:1、错误类型与枚举的结合 throw VendingMachineError.insufficientFunds(coinsNeeded: 5) throw VendingMachineError.insufficientFunds(coinsNeeded: 5) 2、异常捕获与栈展开 Error
阅读全文
摘要:软件的构造复合构造定律; 包含两个方面的内容: 1、结构的构造; 2、算法的构造; 结构的构造即为类型的整合; 算法的构造复合逻辑的结合; 算法的结构复合逻辑的整合;
阅读全文
摘要:Swift defines two kinds of initializers for class types to help ensure all stored properties receive an initial value. These are known as designated i
阅读全文
摘要:class UIViewSpringAnimator: SwipeAnimator { // 动画完成的闭包 var completion:((Bool) ->Void)? func addCompletion(completion:@escaping (Bool) ->Void) { self.c
阅读全文
摘要:区别:一般地说,所有的判断都是命题,判断是经过断定了的命题,但不是所有的命题都是判断。因此,命题的外延要比判断大的多。判断侧重于内容方面,而命题侧重于形式方面。联系:对于一般的逻辑学教程中,两个概念不做严格的区分,他们都表示同一个意思,都是指人对思维对象的断定。 (PS:楼上的回答不专业,这里是哲学
阅读全文
摘要:结论:value是拷贝,Reference是引用 Value and Reference Types Types in Swift fall into one of two categories: first, “value types”, where each instance keeps a u
阅读全文
摘要:大脑每秒钟接受的信息量是有限的; 阅读时单纯图快,第一会造成信息丢失,第二会生成垃圾信息; 所以重要的信息要放慢阅读速度。
阅读全文
摘要:结论:1、optionals使用时需要检查;2、可以通过!+赋值语句转化为非optionals。 Optional-Generic Enumeration enum Optional<T> : LogicValue, Reflectable { case None case Some(T) init
阅读全文
摘要:1.是否有独立思考的能力。 2.是否能独立解决问题
阅读全文
摘要:学而不思则罔:没有生成自己的见解和思想,没有收获,疲劳无措,劳而无功; 思而不学则殆:源泉枯竭,停滞不前。 学习是吃东西,思考是消化;只吃不消,成了无用的知识堆积,学傻了就是如此。只消不吃,可能会脱离实际。 学与思是原料与产品的关系,是感性认识与理性认识的关系。 是思想跑马与思想骑马的关系。
阅读全文