1

(J'utilise l'outil "officiel" de developpement GP2X)

Apres de trèèèèès nombreuses heures consacrées a optimiser mon code (utiliser des INT, des pointeurs, simplifier les boucles for...)
J'ai gagné 2 à 3 frames par secondes.
Puis je me suis souvenu qu'il existe une option automatique d'optimisation du code dans DEV C++.
Le genre d'option qui n'apporte généralement aucun gain de vitesse notable.

Dans:
project/project options/compiler/optimisation
j'ai coché les cases "optimization"...
YES a "minor" et YES a "best"

Et mon logiciel a gagné entre 10 et 15 images par secondes sur la GP2X, selon les situations !!!

Si vous n'avez pas coché cette option, essayez là, vous aurez peut etre comme moi une surprise agréable !!

2

Ça correspond à l'option "-O3" de gcc ? Normalement en jouant avec les diverses optimisations et flags à mettre ou non tu peux pas mal gagner, que ce soit en perf ou en taille (mais souvent c'est contradictoire grin)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

3

j'ai essayé sous devc++ et j'ai aucun gain de perf, uniquement en taille...
ça doit dependre des cituations et du code...
aucune idée de comment ça marche, d'ailleur, j'en profite pour poser une question de code plus général:
comment ça marche l'optimisation? quels sont les principes de bases?
jme doute bien que ça consiste à reduire le nombre de calcul, de tours de boucle ect...
mais concretement ya des ptit trucs a savoir?


ça par exemple:
plikita (./1) :
(J'utilise l'outil "officiel" de developpement GP2X)

Apres de trèèèèès nombreuses heures consacrées a optimiser mon code (utiliser des INT, des pointeurs, simplifier les boucles for...)


pourquoi utiliser des INT, pointeurs, ect?

voila en gros si quelqu'un connais bon un tuto sur l'optimisation je prend oui
Si le mal éxiste en ce monde,
il est dans le coeur de l'humanité

4

Des int à la place des floats je pense, bref passer en virgule fixe plutôt que flottante pour accélérer les calculs happy
utiliser des pointeurs directement plutôt que rester en haut niveau peut permettre de mieux en contrôler l'arithmétique aussi.

Comment marche l'optimisation ? Je sais pas trop le sens de la question en fait grin Tu parles du compilo ?

Grosso modo deux types de "trucs" me viennent à l'esprit

1- repenser les algorithmes
2- se rapprocher de la cible

Le 1 consiste à trouver des algorithmes tout simplement plus efficaces. Souvent on parle de deux types d'optimisations: en taille et en performance. La plupart du temps c'est l'un ou l'autre, mais ça peut être le deux. En effet, si tu remplaces une longue suite d'instructions par juste quelques unes avec le même résultat, il y a des chances que ça aille plus vite en étant plus petit wink Par contre, imagine une boucle de 10 itérations, l'optimisation en taille utilisera par exemple un "for" alors que celle en performances pourra dérouler la boucle et mettre vingt séquences identiques à la suite... une autre optimisation en performances est justement l'utilisation de calculs en virgule fixe plutôt que des floats.
Le 2 consiste à choisir les opérations et types de données les plus adaptées au processeur et au système que tu utilises. Par exemple sur 68000 une boucle du genre for(i=max; i--; ) (ou --i ? je ne me rappelle plus) sera plus efficace qu'un classique for(i=0; i<max; i++), à cause des instructions assembleur générées. Cela suppose bien sûr que tu connaisses le compilo C assez bien, et qu'il sache faire ce genre de trucs. Voir passer directement en assembleur.

Il y a pas mal d'astuces de langage aussi qui permettent de grapiller... Exemple : topics/95751-operations-binaires

Quant aux options du compilo, ça va lui permettre d'utiliser ce genre d'optimisations voir d'en faire d'autres plus génériques (modifier le nombre de paramètres sur la pile et dans des registres lors d'appels à des fonctions, dérouler les boucles, utiliser des registres pour des variables globales, factoriser le code, etc).
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

5

merci pour toutes ces explications, jvais m'y mettre et farfouiller un peu pam
Si le mal éxiste en ce monde,
il est dans le coeur de l'humanité