我最近一直在研究 PGO 和 LTO 如何显着优化程序速度(有人说大约 20%)。我目前只是用 C 语言编程,并在 Windows 中使用 GTK+ 构建 GUI(通过 GCC 编译所有内容),并且仅使用 -O2 进行优化。
我一直在阅读并使用标志进行编译
gcc -Wall -g -mwindows -O3 -fprofile-generate -flto example.c -o example.exe `pkg-config --cflags --libs gtk+-3.0`
Run Code Online (Sandbox Code Playgroud)
创建了 .gcno 和 .gcda 文件,然后运行编译后的 .exe 多次,然后再次重新编译相同的 .c 文件,但将“-fprofile-generate”替换为“-fprofile-use”?(同时确保所有这些文件位于同一文件夹/目录中,并为第二次编译的 .exe 使用不同的名称)
gcc -Wall -g -mwindows -O3 -fprofile-use -flto example.c -o program.exe `pkg-config --cflags --libs gtk+-3.0`
Run Code Online (Sandbox Code Playgroud)
或者您是否以某种方式使用 .gcno/.gcda 文件?另请阅读有关使用“基准”的内容。
问题:
在GCC中使用它的步骤是什么?(分步指南会有所帮助:)
是否有任何版本的 Glade 3.18.3 作为 Windows 二进制文件?真的很想将 GTK3+ 与 Glade 一起使用,但是它们似乎已经停止在 3.8.5 :( 仅支持 GTK 2.24。