gcc __builtin_memcpy特定字节数下性能远劣于clang,求技术分析
GCC vs Clang 编译性能差异问题求助
最近在设计算法的过程中,我碰到了一个挺头疼的性能问题——一段逻辑简单的代码,用GCC编译后的运行表现和Clang(macOS下的cc)版本差了一大截,特意整理了复现细节和目前的尝试,想请各位大佬给点思路。
复现步骤
- 创建包含目标代码的
test.c文件 - 使用GCC编译并运行:
gcc test.c -O3 -o test_gcc && ./test_gcc - 使用macOS自带的
cc(本质是Clang)编译并运行:cc test.c -O3 -o test_clang && ./test_clang
性能测试结果
- GCC编译版本的用户耗时约23秒
- Clang编译版本的运行耗时直接降到了不到9秒,性能提升超过2.5倍
已尝试的操作
我已经尝试手动替换代码中的__builtin_memcpy函数,但性能提升并不明显,核心的性能差距问题依然存在。
想请教大家:有没有遇到过类似的情况?可能的根因是什么?有没有什么针对性的优化方案或者编译参数可以调整,来缩小这个性能差距?
内容的提问来源于stack exchange,提问作者gpnuma
相关产品推荐
相关产品推荐

