c++ 高并发中遇到的几个性能问题总结

1,单个请求时,耗时比较少4ms,并发量上来时,耗时15ms左右;

  --  gcc  编译时,使用-O2的选项;

2,在1的基础上,高并发时,耗时变为8ms左右;

 --   将代码中对象拷贝的地方改为指针拷贝;

3,在2的基础啊上,高并发时,耗时变为5ms左右,qps只能达到2000;

--    将gcc 的 -pg 选项删除掉;

4,在3的基础上,高并发时,耗时变为3ms左右,但是qps 达到3100时,超时率变高,

 根据返回数据长度比较大的特点,查看了一下网卡(iftop -B)情况,达到带宽最大值;

--  下一步使用protobuf或者先压缩,再发送;

c++ 如何解决高并发问题?
线程池+多路io的模式。多路io可以用epoll 或者某些 unix的kqueue。 也可以用libuv或者libevent这些封装过的消息循环框架。

你可能感兴趣的:(C++,并发)