Grigri/Magie dev C++

Grigri/Magie dev C++ - C++ - Programmation

Marsh Posté le 07-04-2005 à 10:35:35    

Bonjour,
j'utilise devC++ 4.9.9.1 avec g++ 3.3.1-20030804-1 (dixit devC++)
J'ai crée un projet console qui se compile sans warning, ni erreur. Et voici ce qui se passe si, dans option du projet, je coche:
 
1) Rien: ca tourne.
2) Quelques optimisations: oui /Optimiser: non / Optimiser Plus: non / Meilleure Optimisation : non / ca tourne.
3) Quelques optimisations: non /Optimiser: Oui/ Optimiser Plus: non / Meilleure Optimisation : non / ca ne tourne pas. (idem avec les deux autres).
4) Rien mais Option du compilateur -O3: ca ne tourne pas.
 
J'ai comme dans l'idée que le problème vient des tablos que je crée dynamiquement, bien que l'erreur ne vienne ni de leur création, ni de leur allocation à proprement parlé puisque l'éxécution s'arrête un peu plus loin.
J'ai cherché un peu et j'ai trouvé ça: http://forum.hardware.fr/hardwaref [...] 8547-1.htm, ce qui ne m'avance pas bcp.
 
Mon petit esprit, cartésien malgré lui, n'aime pas les reflets dans la caverne et voudrait bien comtempler la lumière de la connaissance. Quelqu'un pourrait-il me dire à quoi correspondent ces options d'optimisation?
 
Par avance, merci.

Reply

Marsh Posté le 07-04-2005 à 10:35:35   

Reply

Marsh Posté le 07-04-2005 à 10:46:41    

man gcc
(là par exemple: http://www.hmug.org/man/1/gcc.html mais attention, c'est pour Macintosh).
 

Options That Control Optimization
 
       These options control various sorts of optimizations.
 
       Without any optimization option, the compiler's goal is to reduce the
       cost of compilation and to make debugging produce the expected results.
       Statements are independent: if you stop the program with a breakpoint
       between statements, you can then assign a new value to any variable or
       change the program counter to any other statement in the function and
       get exactly the results you would expect from the source code.
 
       Turning on optimization flags makes the compiler attempt to improve the
       performance and/or code size at the expense of compilation time and
       possibly the ability to debug the program.
 
       Not all optimizations are controlled directly by a flag.         Only opti-
       mizations that have a flag are listed.
 
       -O
       -O1 Optimize.  Optimizing compilation takes somewhat more time, and a
           lot more memory for a large function.
 
           With -O, the compiler tries to reduce code size and execution time,
           without performing any optimizations that take a great deal of com-
           pilation time.
 
           In Apple's version of GCC, -fstrict-aliasing, -freorder-blocks, and
           -fsched-interblock are disabled by default when optimizing.
 
       -O2 Optimize even more.        GCC performs nearly all supported optimiza-
           tions that do not involve a space-speed tradeoff.  The compiler
           does not perform loop unrolling or function inlining when you spec-
           ify -O2.  As compared to -O, this option increases both compilation
           time and the performance of the generated code.
 
           -O2 turns on all optimization flags specified by -O.         It also turns
           on the following optimization flags: -fforce-mem -foptimize-sib-
           ling-calls -fstrength-reduce -fcse-follow-jumps  -fcse-skip-blocks
           -frerun-cse-after-loop  -frerun-loop-opt -fgcse   -fgcse-lm
           -fgcse-sm -fdelete-null-pointer-checks -fexpensive-optimizations
           -fregmove -fschedule-insns  -fschedule-insns2 -fsched-interblock
           -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks  -fre-
           order-functions -fstrict-aliasing -falign-functions        -falign-jumps
           -falign-loops  -falign-labels
 
           Please note the warning under -fgcse about invoking -O2 on programs
           that use computed gotos.
 
       -O3 Optimize yet more.  -O3 turns on all optimizations specified by -O2
           and also turns on the -finline-functions and -frename-registers
           options.
 
       -O0 Do not optimize.  This is the default.
 

Reply

Marsh Posté le 07-04-2005 à 10:47:00    

balance ton code. Un code pourrie peut des fois fonctionner à cause d'effets de bords.

Reply

Marsh Posté le 07-04-2005 à 13:26:47    

Merci pour l'aide. Je comprends donc que -O3=Meilleure optimisation pour devcpp -O1->quelques, etc.
 
Quant à diffuser mon code, c'est un peu compliqué comme ca, il tient sur plein de fichiers, etc. Il se peut qu'il soit pourri, j'en suis meme convaincu car il a été écrit par ajout pdt 3 ans, que je ne suis pas programmeur, que ma formation en c a été très expéditive, etc. Mais il fait ce que je lui demande.. a sa vitesse :). J'avais ds l'idée de le réécrire en C car je ne suis plus convaincu qu'il faille absolument l'écrire en C++, avec des classes mais c'est long et je n'ai pas de temps à consacrer à cela pour l'instant.
 
Ma question était plus par curiosité car je n'aime pas trop les phrases du style 'plus d'optimisation'. La réponse de Lam's me satisfait. Je sais à quoi m'en tenir maintenant. Je n'ai malheureusement pas encore ce réflexe de taper man. Ca va venir.  
 
Merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed