“优化 Linux C++ 配置”可以指很多方面,通常分为编译构建优化、运行环境优化、代码与工具链优化三类。下面从实战角度给你一份较系统的优化清单。
g++ --version
-O2 # 推荐默认
-O3 # CPU 密集程序
-Os # 嵌入式/体积敏感
-Ofast # 不严格遵循标准(谨慎)
-Wall -Wextra
-flto # 链接时优化
-march=native # 针对当前 CPU
-fno-rtti # 不用 RTTI
-fno-exceptions # 不用异常(性能敏感)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -flto")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
make -j$(nproc)
ninja -j$(nproc)
-fuse-ld=lld
CMake:
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld")
dlopenstrip 去掉符号strip app
ulimit -n 100000
/etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000
适合内存密集型服务:
echo 2048 > /proc/sys/vm/nr_hugepages
taskset -c 0-3 ./app
reserve() 避免扩容std::string_viewshared_ptr 滥用std::thread + std::atomicperf top
perf record ./app
perf report
或:
cmake -GNinja ..
ninja
ccache -M 10G
export CC="ccache gcc"
g++ -O3 -march=native -flto \
-fno-exceptions -fno-rtti \
-fuse-ld=lld main.cpp -o app
你可以告诉我:
我可以直接给你针对性配置模板。