摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/Background先来看一段程序。线程1ready = false;init(p);ready = true;线程2if (ready) { p.bar();}线程2当ready为true时才会访问p,而在线程1...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/epoll提供了ET和LT两种模式,网上文章很多,这里只总结下LT模式下的两个缺点epoll对fd的管理实现是用的红黑树,所以epoll_ctl并不是一个很快的操作,而LT模式更放大了这个缺点。有一个关于内存屏障(M...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/Background网络术语里的阻塞和非阻塞,哪个模式相对好些?大多数都会选择非阻塞模式,不过技术向来都是矛盾的,这里分析和总结下。Blocking一般使用非阻塞来提高IO并发度(Linux的native aio只对...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/背景分享一个hhvm使用http server方式来处理请求的问题及对应的patch。hhvm3+版本支持fastcgi模式,而之前的版本都只能用http serve模式来响应请求,由于hhvm的http serve...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/背景我们在aws上部署了hhvm,高峰段发现cpu idle降的比较低,只有10-20%,而使用php-fpm的另外一台机器的cpu idle在40-60%,这与hhvm的性能明显不符。hhvm的cpu截图分析使用g...
阅读全文
摘要:本文为原创,转载请注明:http://www.cnblogs.com/gistao/Background写网络程序的都知道,tcp的窗口控制分为慢启动阶段和拥塞避免阶段,重传机制有快速重传/恢复和超时重传。网上关于快速重传的文章很多,但质量参差不齐,这里对它的设计背景和原理总结下。Conceptrt...
阅读全文
摘要:Background我们的多进程程序碰到一个需求:做key-value查询,然后拿获取到的value去做一些事情。这些key-value存储在很多词典文件中,数量级>10w,如果每个进程都加载一份,内存上是很浪费的,所以需要共享访问,看起来就像是一个IPC使用std::map的场景。有很多方法都可以...
阅读全文