page off gsuite google crear correo como apps administrador c++ optimization g++

c++ - off - gsuite admin



¿Cómo usar optimizaciones guiadas por perfil en g++? (3)

-fprofile-generate instrumentará la aplicación con código de perfil. La aplicación, mientras se está ejecutando, registrará ciertos eventos que podrían mejorar el rendimiento si este patrón de uso se conociera en tiempo de compilación. Las ramas, la posibilidad de alineación, etc., pueden registrarse, pero no estoy seguro de cómo GCC implementa esto.

Después de que el programa finalice, volcará todos estos datos en archivos * .gcda, que son esencialmente datos de registro para una ejecución de prueba. Después de reconstruir la aplicación con el indicador de uso de perfil, GCC tendrá en cuenta los datos de registro * .gcda al realizar sus optimizaciones, lo que generalmente aumenta el rendimiento de manera significativa. Por supuesto, esto depende de muchos factores.

Además, ¿alguien puede indicarme un buen tutorial sobre el tema? No puedo encontrar ninguno.


De este ejemplo :

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

Básicamente, compila y enlaza inicialmente con esta bandera adicional para la compilación y el enlace: -fprofile-generate (desde here ).

Luego, cuando lo ejecute, de forma predeterminada creará archivos .gcda "al lado" de sus archivos .o, parece (codificado por hardware en la ruta completa donde se crearon).

Opcionalmente puede cambiar dónde crea estos archivos .gcda con la configuración -fprofile-dir = XXX.

Luego compila y vuelve a vincular usando el parámetro de uso de perfil, y lo compila usando bondad guiada por perfil.


El truco es configurar los archivos make.

Definitivamente necesita directorios de salida separados para los archivos de objetos. Yo recomendaría nombrarlos "perfil" y "lanzamiento". Es posible que tenga que copiar los archivos * .gcda que resultan del perfil ejecutado para que GCC los encuentre en el paso de creación del lanzamiento.

El resultado seguramente será más rápido. Probablemente será más grande también. La opción de uso de perfil habilita muchos otros pasos de optimización que de lo contrario solo están habilitados por -O3.