From: http://floriankugler.com/blog/2013/4/29/concurrent-core-data-stack-performance-shootout  http://floriankugler.com/blog/2013/4/2/the-concurrent-core-data-stack CoreData常用的三种multiple context架构如下: 第一种: 第二种: 第三种: 三种性能比较: 测试数据为15000条纪录…
声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的框架,如果发现有雷同,请勿见怪,这篇文章只是我的个人记录,算不上原创,只是更多的想把概念描述清楚,所以如果您觉得有copy之嫌的话请绕道看您觉得的原链接.在第8部分给出了笔记的参考链接.   1.allocator 作用 STL的组件(容器)都需要配置空间以放置资料.这个就是allocator的作用…
大家都知道 laravel 项目写起来是挺爽,但是在生产环境性能不高,我们来抽丝剥茧分析我自己项目的运行时间消耗: Bootstrap 耗时 步骤 耗时 Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables 0.3058910369873 Illuminate\Foundation\Bootstrap\LoadConfiguration 3.6571025848389 Illuminate\Foundation\Bootstrap\Ha…
第一章 ApacheFlink介绍 一.Flink优势 1. 目前唯一同时支持高吞吐.低延迟.高性能的分布式流式数据处理框架 2. 支持事件事件概念 3. 支持有状态计算,保持了事件原本产生的时序性,避免网络传输带来的影响 4. 支持高度灵活的窗口操作,Flink将窗口分为Time.Count.Session以及Data-driven等类型的窗口操作,可以灵活的处罚条件定制化来达到对复杂的流传输模式的支持. 5. 基于轻量级分布式快照实现容错,大型计算任务的流程拆解成小的计算过程,task分布到…
1.关联式容器的概念 上一篇文章讲序列式容器,序列式容器的概念与关联式容器相对,不提供按序索引.它分为set和map两大类,这两大类各自有各自的衍生体multiset和multimap,的底层机制都是用红黑树实现,红黑树是一种基本平衡的二叉搜索树,红黑树的原理wiki上讲得很清楚,书中只是把算法实现在了底层而已,在SGI STL中RB-tree是作为底层数据结构供其他容器配接用,因此关联容器可以看做都是adaptor模式的应用. 关联式容器的概念类似于关联式数据库,为获得良好的搜索效率,一般用平…
1.准备知识 typename用法 用法1:等效于模板编程中的class 用法2:用于显式地告诉编译器接下来的名称是类型名,对于这个区分,下面的参考链接中说得好,如果编译器不知道 T::bar 是类型名的话 T::bar * p可能就被理解成了T::bar 乘以p,T::bar & p可能就被理解成为了 T::bar 和p做逻辑与操作. 事实上,在模板编程时,如果传入的模板参数为T(T里面有模板参数的非独立名字bar),那么在不显示指定的话,c++或假定T::bar为变量名以消除歧义. "…
程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承受能力:当系统压力上升时,系统的执行速度.响应时间的上升曲线是否平缓 衡量程序性能的主要指标: 执行时间:程序从运行到结束所使用的时间 CPU时间:函数或者线程占用CPU的时间 内存分配:程序在运行时占用内容的空间 磁盘吞吐量:描述I/O的使用情况 网络吞吐量:描述网络的使用情况 响应时间:系统对用…
第十八章 调试 18.1 准备开始 1. 需要的只是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 2. 在跟踪bug的时候,掌握的信息越多越好. 18.2 内核中的bug 1. 内核bug多种多样,产生的原因有很多:从错误代码(没有把正确的值存放在恰当的位置):到同步时发生的错误(共享变量锁定不当):再到错误的管理硬件(给错误的控制寄存器发送错误的指令). 2. 从降低所有程序的运行性能到毁坏数据再到使得系统处于死锁状态都可能是bug发作时的症状. 3. 从隐藏在源代码中的…
第五章 系统调用 5.1 与内核通信 1.调用在用户空间进程和硬件设备之间添加了一个中间层.该层主要作用有三个: 为用户空间提供了硬件的抽象接口. 系统调用保证了系统的稳定和安全. 实现多任务和虚拟内存,保证良好的稳定性和安全性. 2.系统调用是用户空间访问内核的唯一手段:除异常和陷入外,是内核唯一合法的入口. 5.2 API.POSIX和C库 1.情况下,应用程序通过在用户空间实现的应用编程接口(API)而不是直接通过系统调用来编程. 2.C库提供了POSIX的绝大部分API. 5.3 系统调…