一步一步做高性能服务器(C++) -- Day 2
【回顾】
昨儿因为加班到凌晨两点,导致后面没时间写代码。
先面壁一会儿吧,这个借口找的有点太牵强了。。。
【新的技术点】
1. 复习了友元: 对其他的类或函数开放访问类本身私有字段的权限
2. 学习了对于不同类型的 << 操作符重载实现。 对于字符串类型的按字节流入,还是有点疑惑。
【今天实现目标】
俗话说的好,饭要一口一口的吃。
首先,今天要实现基于libevent的TCP实现,能够使用客户端发送和接受数据。
今天的实现,不考虑类的抽象和封装,仅仅是实现功能。
【结尾】
今天实现了TCP的echo server,并且跑了下压力测试。 因为多连接测试比较复杂,而且已经有比较成熟的benchmark了,因此我只做了单链接的压力。
结果如下:
echo 次数(1000) : 平均时间【22.4ms】 最大时间【30ms】 最短时间【20ms】
echo 次数 (10000) : 平均时间【23.2ms】 最大时间【81ms】 最短时间【8ms】
echo次数(1000000) : 平均时间【24.4ms】 最大时间【218ms】 最短时间【8ms】
个人觉得这个性能还是相对不错的。
明天需要实现对libevent的二次封装,read callback, error callback,以及如何控制回写等等。
【代码】
代码已更新至bitbucket,地址:https://bitbucket.org/Allen_Wu/gas