在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++程序進行全面的性能測試和分析,從而找出性能瓶頸并進行優化。