Mai*_*ter 52
-fprofile-generate将使用性能分析代码检测应用程序.应用程序将在实际运行时记录某些事件,如果在编译时已知这种使用模式,则可以提高性能.分支,内联的可能性等都可以记录,但我不确定GCC如何实现这一点.
程序退出后,它会将所有这些数据转储到*.gcda文件中,这些文件实际上是测试运行的日志数据.使用-fprofile-use标志重建应用程序后,GCC会在进行优化时考虑*.gcda日志数据,通常会显着提高性能.当然,这取决于很多因素.
rog*_*ack 21
从这个例子:
g++ -O3 -fprofile-generate [more params here, like -march=native ...] -o executable_name
// run my program's benchmarks, or something to stress its most common path
g++ -O3 -fprofile-use [more params here, like -march=native...] -o executable_name
Run Code Online (Sandbox Code Playgroud)
基本上,您最初编译并链接此额外标志以进行编译和链接:( -fprofile-generate从此处开始).
然后,当你运行它时,默认情况下它会为.o文件"下一步"创建.gcda文件,它似乎(硬编码到它们构建的完整路径).
您可以选择使用-fprofile-dir = XXX 设置更改创建这些.gcda文件的位置.
然后使用-fprofile-use参数重新编译和重新链接,并使用配置文件引导的优点对其进行编译.
| 归档时间: |
|
| 查看次数: |
20408 次 |
| 最近记录: |