摘要:关于mmap,是linux系统给程序员提供的一个接口,使得可以像读取mem一样读取disk上的数据(系统会一点一点的load到内存,这个方式程序员可以控制,一般是首先会去mem查找,如果没有就去disk找,并同时load到mem中,OS一般不会给调度会disk,所以在使用这个方法的时候,最好有一次warmup的过程,预先全部load到mem中,同事就遇到过这个问题,表象就是第一次查询超时,第二次就正常)http://www.kernel.org/doc/man-pages/online/pages/man2/mmap.2.html
阅读全文
摘要:问题根源:当有许多客户端用socket来连接我的服务器(期间存在一定的数据交互)的时候,为了提高性能,我们需要采用多线程编程(处理具体的请求),同时还要使用epoll来高效的在IO事件之间切换(侦查socket连接的IO事件)。这篇随笔,我们主要是写一个单独的模块来解决http到rpc的转化这个问题(本质上来说,有很多开源库来完成这个协议转化的比如XML-RPC,具体需要根据实际情况使用),我们的这么模块需要做其他逻辑,所以自己做了这个工作。由于我们采用C++编程,有线程池的类写起来和传统的C程序有点不同。如要在c++下操作线程,有两种办法: 1、第一种:在.CPP文件中,定义不属于某个类的线
阅读全文
摘要:1、关于2条单向链表是否存在交点的问题,只能Y字型,方法是遍历两条链表,看他们的尾指针是否相同,相同则有交点,进而求交点的位置,两条链的长度为M,N,如果M>N,则短链从头开始扫,长链从M-N处开始扫,如果发现相同点,则为交点。2、链表是否有环,用一快(2)一慢(1)的指针,如果他们相遇了,则说明有交点,如果需要找点环的开始节点,则这样做:当第一次相交后,再一快一慢的扫一次,第二次遇上的时候,他们走的步长差值就为环的长度,有了这个长度M,则用M长的火车从头开始扫,当这列火车头尾相遇,则相遇点就是环的入口处。还有一个链表反转的问题,主要是注意递归版本的实现,想了好久#include<
阅读全文
摘要:看考http://docs.huihoo.com/homepage/shredderyin/emacs_elisp.html以下是C++编码的一些必要设置,已经够用了;;;;CC-mode配置 http://cc-mode.sourceforge.net/ (require'cc-mode) (c-set-offset'inline-open 0) (c-set-offset'friend '-) (c-set-offset'substatement-open 0) ;;;;我的C/C++语言编辑策略 (defunmy-c-mode-common-hook() (setqtab-width
阅读全文