摘要: 互联网服务应用协议设计-借鉴备忘0 我们为什么需要自己设计协议:在互联网后台开发中,稍微复杂一些的业务,服务是必要的,进而协议也是必要的。那么我们是否可以复用已有的协议呢?主要是因为现在已有的协议都没有能完全match互联网后台开发的需求,存在这样或那样的问题。1 协议设计的原则:解析效率:互联网业... 阅读全文
posted @ 2015-09-28 15:38 克莱尔孙 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 写操作与事件对应关系事件与Watcher对应关系.png写操作与Watcher关系 阅读全文
posted @ 2015-05-11 17:06 克莱尔孙 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 内存池,对象池,连接池,线程池等等我们写程序中,有很多"池子"。这方面资料网上很多,最近在整理自己的一些东西,把这方面资料整理下。 分四篇文章 池子基本要素分析jedis pool(Java)分析 sync.Pool(go)分析 总结 池子基本要素 一般我们使用的时候,基本是下面... 阅读全文
posted @ 2015-05-10 21:31 克莱尔孙 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP : Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA : Non-Uniform Memory Access) ,以及海量并行处理结构 (MPP : Massive Parallel... 阅读全文
posted @ 2014-11-12 19:13 克莱尔孙 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 最新非专业学习一下C++11特性,需要升级 gcc 到 4.8.1,记录一下安装过程。首先安装依赖:sudo apt-get install libgmp-devsudo apt-get install libmpfr4 libmpfr-devsudo apt-get install libmpc-... 阅读全文
posted @ 2014-08-07 14:14 克莱尔孙 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 以前只是知道这个东西,可以解决一些问题,最近自己做一个字符串操作的东东,看了下redis的源码,做个小的总结。struct cl_str_s{ int free; int len; char buf[];}; 代码的意思是,我们定义了一个结构体,它有这么三个属性,作用很明显不详细... 阅读全文
posted @ 2014-07-11 16:20 克莱尔孙 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 这个问题确实比较基础,些这篇文章为了给自己一个总结,也算是一个笔记记录,争取做到最精简。结构体对齐关键词: “对齐系数”(也叫对齐模数):以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数 “对齐规则”:分两步,数据成员对齐,整体对齐: 1:数据... 阅读全文
posted @ 2014-06-28 15:15 克莱尔孙 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 最近项目测试,发现一个oom killer问题,所以搜集了一些文章,理解并做记录。现象:做性能测试时,程序自己退出,记录"killed"日志。查了下syslog发现详细记录了问题原因,应用程序进程占满了自己的虚拟地址空间,没法再分配内存了。后来从新做,pmap了一下,结果果真很吓人。原因:与测试组测... 阅读全文
posted @ 2014-06-22 22:15 克莱尔孙 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 网上很多关于EPOLL的介绍,或者翻译man手册,或者找一些国外的文章,还有一些很好得心得分享。但是看完总有一种模糊的感觉,尤其是关于 ET LT 两种模式,今天自己做一些例子仔细体会下。一:概念 边沿触发(edge triggered),就是在事务的两个状态交替的边沿触发,对socket来讲就是... 阅读全文
posted @ 2014-04-24 18:52 克莱尔孙 阅读(2361) 评论(0) 推荐(0) 编辑
摘要: Python调用C,主要是依靠Python的ctypes调用动态链接库返回“简单类型”C代码:intmultiply(int num1, int num2){ return num1 * num2;}gcc命令:gcc -c -fPIC libtest.cgcc -shared libtest... 阅读全文
posted @ 2014-04-15 15:28 克莱尔孙 阅读(503) 评论(0) 推荐(0) 编辑