CentOS C++配置性能优化方法
yum install gcc gcc-c++安装最新版本(如GCC 11),新版本通常包含性能改进和bug修复。-O2(平衡编译时间与性能,推荐生产环境)或-O3(更激进优化,提升性能但增加编译时间);-Ofast启用所有-O3优化并忽略部分标准合规性(可能提升性能但有未定义行为风险)。-march=native针对当前机器CPU微架构生成最优代码(如AVX2指令集),-mtune=native优化指令调度,提升执行效率。-flto在链接阶段跨模块优化,消除冗余代码,提升性能(适用于大型项目)。make -j$(nproc)利用多核CPU并行编译,缩短编译时间。std::vector::reserve)减少动态内存分配/释放次数;避免频繁拷贝,用引用或指针传递大对象。#pragma omp simd)并行计算密集型任务,提升吞吐量;减少锁使用(如无锁队列、原子操作)降低竞争。alignas关键字对齐结构体/变量(如alignas(64)),提升CPU缓存访问效率。ulimit -n 65535增加进程可打开文件数,避免高并发场景下文件描述符耗尽;修改/etc/security/limits.conf永久生效。net.core.rmem_max(接收缓冲区最大值)、net.core.wmem_max(发送缓冲区最大值)(如设为16MB),net.ipv4.tcp_rmem/tcp_wmem(分级缓冲区设置),提升网络吞吐量;开启net.ipv4.tcp_fastopen(快速打开)减少握手延迟。vm.swappiness=10(降低Swap使用倾向,优先使用物理内存);使用numactl绑定进程到特定NUMA节点,优化多路CPU内存访问。noatime(不更新访问时间)减少磁盘I/O。systemctl stop firewalld)、SELinux(setenforce 0,修改/etc/selinux/config永久关闭),减少系统资源消耗。perf:记录程序运行时的函数调用栈(sudo perf record -g ./myprogram),生成报告(sudo perf report)定位热点函数;支持火焰图生成(perf script | FlameGraph/stackcollapse-perf.pl | FlameGraph/flamegraph.pl > flamegraph.svg)。gprof:编译时添加-pg选项,生成gmon.out文件,通过gprof myprogram gmon.out > analysis.txt分析函数耗时。Valgrind:用callgrind工具检测函数调用关系与耗时(valgrind --tool=callgrind ./myprogram),通过kcachegrind可视化分析;同时可检测内存泄漏(memcheck)。top/htop(查看CPU/内存使用率)、vmstat(查看系统级I/O、CPU统计)、iostat(查看磁盘I/O详情)监控资源瓶颈。