Profiling et fonctions inline - C++ - Programmation
MarshPosté le 29-05-2009 à 09:56:33
Bonjour à tous.
J'ai un petit problème de profiling avec mon code C++. Le profiler (gprof en l'occurrence) m'indique que le programme passe la majeure partie de son temps dans des fonctions inlinées et à priori pas coûteuses mais appelées très souvent. Il s'agit par exemple d'un opérateur () permettant d'accéder aux éléments d'un tableau à plusieurs dimensions.
Renseignements pris, il semblerait que lorsqu'on compile avec l'option -pg, les fonctions inline ne sont pas inlinées en pratique. Ce qui explique les résultats donnés par le profiler.
J'ai donc 2 questions à ce sujet. 1) Comment vérifier que, lorsque je compile avec -O2 au lieu de -pg, les fonctions inline sont bien inlinées ? 2) Est-il possible de faire du profiling avec les fonctions vraiment inlinées, histoire de savoir quelle fonction prend vraiment du temps ?
Marsh Posté le 29-05-2009 à 09:56:33
Bonjour à tous.
J'ai un petit problème de profiling avec mon code C++. Le profiler (gprof en l'occurrence) m'indique que le programme passe la majeure partie de son temps dans des fonctions inlinées et à priori pas coûteuses mais appelées très souvent. Il s'agit par exemple d'un opérateur () permettant d'accéder aux éléments d'un tableau à plusieurs dimensions.
Renseignements pris, il semblerait que lorsqu'on compile avec l'option -pg, les fonctions inline ne sont pas inlinées en pratique. Ce qui explique les résultats donnés par le profiler.
J'ai donc 2 questions à ce sujet.
1) Comment vérifier que, lorsque je compile avec -O2 au lieu de -pg, les fonctions inline sont bien inlinées ?
2) Est-il possible de faire du profiling avec les fonctions vraiment inlinées, histoire de savoir quelle fonction prend vraiment du temps ?
Merci d'avance.