Forum Programmation.c++ release moins performante que debug

Posté par .
Tags : aucun
0
25
jan.
2008
bonjour a tous ,

j'utilise eclipse et je fais des test de performance, et étrangement, la version release et plus lente que la version debug.
je m'explique :
je chronomètre une fonction DGEMM que j'ai compilée en version debug, j'ai un temps de 8 secondes environ
le même code que je compile en release et que je lance dans la console : j'ai un temps de 22 secondes

c'est quand meme une sacrée difference , quelqu'un aurait t'il un idée de cette perte de performance??

eclipse me met les options suivantes à g++ pour la version release
g++ -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sample.d" -MT"sample.d" -o"sample.o" "../sample.cpp"
g++ -o"ALPHA_sample" ./sample.o -lGLEW -lglut -lalpha



pour le debug j'ai :
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sample.d" -MT"sample.d" -o"sample.o" "../sample.cpp"
g++ -o"ALPHA_sample" ./sample.o -lalpha -lGLEW -lglut




merci de vos réponses
  • # Par curiosité

    Posté par . Évalué à 4.

    Essaie de compiler sans O3 mais avec O0 (pour être dans les même conditions) dans un premier temps puis O2.
    O3 a tendance à privilégier la "rapidité" du code par rapport à la taille, et ça a parfois tendance à provoquer pas mal de "cache miss" surtout quand tu as beaucoup de code "inline" donc à ralentir l'exécution. O2 est un meilleur compromis à ce niveau.
    • [^] # Re: Par curiosité

      Posté par . Évalué à 1.

      merci de ta reponse ,

      j'ai fais des test avec chacun des choix (0,1,2,3), et, pour finir, je compille la release avec une optimisation à o0, c'est celle qui me sonne le plus de rapidité

      bonne journée

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.