先来一个简单的 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…… 阅读全文
骥随春来
又到了一年更替,冬去春来,辞旧迎新的时分。岁月不息,草木枯荣,看着那些花儿仿佛和小时候没什么不同,桃花依旧笑着春风,只是人的心态,却早已不复以往了。
我此刻坐在键盘前,想着整理整理今年走过的路。从信工楼做着毕设的实验室出来,去到大梅沙,参加公司的毕业生封闭培训,短短一周的时间下来,晨练,上课,午休…… 阅读全文
函数返回对象时的问题
来看这个代码
#include <iostream>
#include <string>
#include <map>
std::map<std::string, std::string> mapHttpRequest;
std::string GetString(std::string strKey)
{
std::map<std::string, std::string>::iterator it = mapHttpRequest.find(strKey);
if (it…… 阅读全文
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)两类。静态…… 阅读全文
gcc 编译时输出有问号
今天切到一台新的机器上去开发,编译的时候发现 gcc 的输出带着问号,就像这个样子
src/BusiObj.cpp: In member function ?.nt CBusiObj::DecodeUdp(int&, int&, const char*, int)?.
src/BusiObj.cpp:287: warning: format ?.d?.expects type ?.nt?. but argument 6 has type ?.ong unsigned int?
src/Busi…… 阅读全文
netstat 查看连接的时候打印进程名
这个本来是个很基本的需求啊,搜了一下,stackover flow 上面有讨论,在这里,http://stackoverflow.com/quest…
Try
ps -p $(lsof -ti tcp:80) o comm=,pid=
or
netstat -tlnp | awk ‘/:80 */ {split($NF,a,”/”); print a[2],a[1]}’
好麻烦,而且跑不了,后来发现加一个 -p 参数就可以了。…… 阅读全文