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 GeneralZod . Évalué à 4.
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 eric . Évalué à 1.
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 à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.