练手代码白板

先来一个简单的 list #include <stdio.h> class ListNode { public: ListNode(int n) { this->n = n; this->pNext = NULL; } int n; ListNode* pNext; }; class List { public: ListNode* pHead; List(ListNode* pHead) { this->pHead = pHead; } List* add(ListNod……

阅读全文

修改网卡缓冲以提高吞吐量

在单机并发上万的时候,发现 sendto 函数比较容易出现返回错误 EAGAIN,对应的错误消息为 Resource temporarily unavailable,这种情况下认为是应用层写入过快,导致网卡缓冲满了 使用这个命令来查看缓冲区现有大小 # ethtool -g eth1 Ring parameters for eth1: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumb……

阅读全文

手工编译 apache 的一些琐碎

压测的时候用到 apache ab,但是 ab 本身支持的并发最大 1000,过了报错,修改源码 support/ab.c 把这行注释掉 apr_err("apr_socket_recv", status); 但是编译的时候各种依赖,手工解决好烦,首先出来 undefined reference to apr 系列的函数,查到这里,http://hi.baidu.com/yang171892…,说了 col……

阅读全文

分支预测以及 gcc 的 __builtin_expect

在阅读代码的时候,发现有类似这种写法: bvl = bvec_alloc(gfp_mask, nr_iovecs, &idx); if (unlikely(!bvl)) { mempool_free(bio, bio_pool); bio = NULL; goto out; } 注意到第二行,if 的判断中,加入了一个 unlikely,这个东西是一个 CPU 指令的优化,用于分支预判,关于分支预判,可以看这个 s……

阅读全文

骥随春来

又到了一年更替,冬去春来,辞旧迎新的时分。岁月不息,草木枯荣,看着那些花儿仿佛和小时候没什么不同,桃花依旧笑着春风,只是人的心态,却早已不复以往了。 我此刻坐在键盘前,想着整理整理今年走过的路。从信工楼做着毕设的实验室出来,去到大梅沙,参加公司的毕业生封闭培训,短短一周的时间下来,晨练,上课,午休……

阅读全文

Android 推送 SDK

目前在 android 上帮助实现消息推送的,找到这么几个 http://xg.qq.com/ http://developer.baidu.com/clo… https://www.jpush.cn/ 具体哪个比较好,搜了一下,没有看到评论,看来要自己一个一个试试,回头写下试用笔记 ————————————&#……

阅读全文

gcc 编译时动态静态库的问题

一般来说,动态静态库的问题,可以参考这个文章,http://blog.csdn.net/ast_224/a… gcc生成静态库和动态库 一、库文件简介 简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态……

阅读全文