我有一个用C ++编写的服务器应用程序,并部署在Cent OS中。我没有编写其代码的任何部分,但我需要优化其性能。它的当前性能对于少量用户来说是可以接受的,但是当用户数量增加时,服务器的性能会急剧下降。
是否有任何工具,技术或最佳做法可以找出瓶颈?
答案 0 :(得分:14)
答案 1 :(得分:3)
如果您没有
,那么首先要构建一个性能测试环境然后重现问题,因为它存在于生产中。完成后,然后使用分析器等,正如其他人所建议的那样。
答案 2 :(得分:1)
答案 3 :(得分:1)
我喜欢,MIke Dunlavey上面的回答(如果你上升我的话,那么就会上升)
我想用两种方法匆忙制定一个人:
gcc
用户在gstack
SIGALRM
结合backtrace
进行自我检查(由您自己的计时器驱动)。就在几天前,我做了类似的事情
# while true; do gstack $MYPID; sleep 2; done | logger $PARAMS
使用符合我的系统日志路由规则的PARAMS,以便我的应用程序日志与堆栈混合(不是与事件完美匹配)
结果是在鼻子上,他们指出我认为可能是一个问题的区域,但由于misuse of reference in a tr1::bind
是我的瓶颈在闹钟方法中要小心你在信号中做什么,不要使用任何分配内存的东西(没有cout / cerr / boost,只使用简单的格式(即“%08X”和printf)