在CentOS系统上进行C++性能测试,可以使用多种工具和方法。以下是一些常用的工具和步骤:
sysbench cpu --cpu-max-prime=20000 --threads=4 run
sysbench memory --memory-block-size=1m --memory-total-size=10g run
sysbench fileio --file-total-size=5g prepare
sysbench fileio --file-total-size=5g --file-test-mode=rndrw --time=60 --threads=4 run
sysbench fileio --file-total-size=5g cleanup
perf:
sudo yum install perf
perf top -p <pid>
perf record -e cpu-clock -g -p <pid>
perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > flamegraph.svg
gperftools:
sudo yum install gperftools
g++ -pg -o my_program my_program.cpp
./my_program
pprof --svg ./my_program ./my_program.prof > analysis.svg
Valgrind:
sudo yum install valgrind
valgrind --tool=memcheck ./my_program
valgrind --tool=callgrind ./my_program kcachegrind callgrind.out.<pid>
nmon:
sudo yum install nmon
./nmon_x86_64_centos7
stress:
sudo yum install stress
stress -c 2
stress -vm 2 -vm-bytes 2000M -vm 2
fio:
wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
tar -zxvf fio-2.0.7.tar.gz
cd fio-2.0.7
make && make install
fio -filename=/tmp/fiotest -direct=1 -iodepth 1 -thread -rw=read -rwmixread=70 -ioengine=psync -bs=4k -size=5G -numjobs=20 -runtime=60 -group_reporting -name=sqe_100read_4k
fio -filename=/tmp/fiotest -direct=1 -iodepth 1 -thread -rw=write -rwmixwrite=70 -ioengine=psync -bs=4k -size=5G -numjobs=20 -runtime=60 -group_reporting -name=sqe_100write_4k
通过这些工具和方法,你可以对CentOS系统上的C++程序进行全面的性能测试和分析,从而找出性能瓶颈并进行优化。