高性能高并发以及go并发学习

http://pl.atyp.us/content/tech/servers.html

http://www.cnblogs.com/fll/archive/2008/05/17/1201540.html

http://blog.csdn.net/ghj1976/article/details/27996095

 

http://blog.csdn.net/marising/article/details/5186643

 

数据拷贝: 零拷贝

上下文切换: 一方面是利用多核cpu,一方面是线程过多带来的上下文切换频繁

内存分配: 减少向系统申请内存。 一是预分配,一次性分配要比分开几次分配开销小,会造成一些内存浪费,所以除非内存吃紧的情况之外,预分配方式一般都是稳赚不赔的方案。  二是类似与go中的pool,释放内存放到一个释放链表上,而不是真正去释放,等需要再次利用的时候再拿来用,这样还有可能减少对象的初始化工作。一般这个链表肯定不能无限制增长下去,而是在等系统空闲时不定期地进行清理。

 

锁竞争:

粗粒度锁会导致并行变成了串行;细粒度锁会导致竞争频繁;

 

其它方面: 系统页大小,系统大数据读写小数据读写,预读方面如何

 

 

多进程、线程 监听一个端口的话, accept在linux2.6内核 没有了惊群现象,而select/epoll等有惊群现象。

posted on 2014-12-08 23:12  不忘初衷,方能致远  阅读(254)  评论(0)    收藏  举报

导航