CentOS 上 C++ 性能优化配置清单
一 编译器与构建优化
source /opt/rh/devtoolset-11/enable 生效。make -j$(nproc) 或 CMake 并行构建,加速迭代开发。const&、std::move)、合理用 inline、用 -fdata-sections -ffunction-sections 配合链接器 --gc-sections 剔除未使用代码以减小体积与提升缓存命中。二 系统级与内核参数
yum update -y),关闭不必要的服务与端口,降低资源争用。taskset)与 NUMA 绑定(numactl)提升局部性与可预测性。ulimit -n 65535 或 /etc/security/limits.conf 配置);对磁盘密集型应用,选择 ext4/xfs 并使用 noatime 挂载选项减少元数据写开销。net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_keepalive_time=1200、net.core.rmem_max/wmem_max=67108864、net.ipv4.ip_local_port_range=1024 65000、net.ipv4.tcp_max_syn_backlog=8192 等,并谨慎评估 tcp_tw_recycle 的版本兼容性与影响。throughput-performance 或 latency-performance 配置,提升吞吐或降低时延。三 多线程并发与内存访问
四 性能分析与验证
五 一键可用的最小配置示例
sudo yum install -y devtoolset-11-gcc* && source /opt/rh/devtoolset-11/enablecmake -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc)g++ -O3 -march=native -flto -funroll-loops -fdata-sections -ffunction-sections -Wl,--gc-sections -o app main.cppecho "* soft nofile 65535" | sudo tee -a /etc/security/limits.confsudo yum install -y tuned && sudo tuned-adm profile throughput-performancesudo sysctl -w net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_keepalive_time=1200 net.core.rmem_max=67108864 net.core.wmem_max=67108864 net.ipv4.ip_local_port_range="1024 65000" net.ipv4.tcp_max_syn_backlog=8192