Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » C & Cie. » Optimisation de la vitesse

Freem
Modérateur
Citer Windows NT Firefox 2 - Posté le 27/10/2007 à 12:50
En me baladant sur le net (enfin, sur programmersheaven ,en fait xD) je suis tombé sur des documents assez intéressants sur l'optimisation...
Je voulait savoir si vous utilisez beaucoups d'astuces d'optimisation, dans vos programmes, et lesquelles, si ça ne vous gène pas (langue)

[edit]
Oouppss j'ai oublié de mettre les liens, ce qui est le minimum de la courtoisie, dans ce genre de cas (gêné)
http://www.programmersheaven.com/zone3/articles/article559.htm

Edité par Freem ( 27/10/2007 12:51:22 )
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
zuzuf
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 27/10/2007 à 13:24
d'abord je bidouille les paramètres d'optimisation du compilateur en fonction de la plate forme ciblée, ensuite quand je veux tester la vitesse d'exécution je le fait avec la version compilée avec les optimisations (qu'il me faut enlever pour déboguer sinon gdb ne me montre pas tout).

Après au niveau du code, bah réduire au maximum la complexité du code, puisque c'est le plus déterminant au niveau performance, pour ça il faut bien déterminer les conditions dans lesquelles va tourner le code, ainsi que ce qui est intéressant dans ce qu'il retourne et ce qui l'est moins ça permet de voir si on fait des calculs inutiles ou bien d'optimiser ses structures de données.

Un truc important aussi (flèche) la taille des structures de données manipulées, parce que ça peut consommer pas mal de bande passante mémoire.

Le reste c'est la structuration du code, pour éviter de recalculer plusieurs fois la même chose et pour éviter aussi d'avoir à mémoriser trop de données précalculées.

Et après je lance un profiler de code et je regarde ce qui prend du temps, et j'optimise les fonctions qui sont le plus souvent appelées, c'est idiot mais une petite optimisation sur une fonction appelée des milliards de fois aura plus d'impact qu'une grosse optimisation sur une fonction appelée seulement quelques fois.

Bon je pense que j'ai tout dis.
Linux a un noyau, windows un pepin
Freem
Modérateur
RemonterCiter Windows NT Firefox 2 - Posté le 27/10/2007 à 13:42
Un profiler de code?
C'est quoi, ça? Jamais entendu parler... Un truc qui analyse pendant combien de temps sont exécutées?

(Et bah on dirait que j'ai bien fait de poster ce topic, dès la 1ère réponse j'apprend déjà un nouveau truc (héhé merki (langue))
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
kod128
ProgBoarder
RemonterCiter Windows NT Firefox 2 - Posté le 27/10/2007 à 13:47
Ce que je fais : j'active les optimisations du processeur, je regarde la sortie asm, je tests différentes écritures de codes pour avoir la meilleure sortie possible.

J'utilise parfois de l'asm avec mon code C pour les routines critiques. Les gains sont, dans certains cas particuliers très spectaculaires, surtout si tu utilise les instructions SSE et cie que les compilos ont toujours du mal a utiliser (langue)

Sinon les plus grands gains à l'optimisation réside dans le choix des algos que tu veux implémenter.

Il faut savoir si tu veux optimiser en vitesse, en conso mémoire, ou les deux à la fois.

Si tu veux des meilleurs perfs grace aux optimisations que fait le compilateur, fait du C. Même si les compilateurs C++ ont beaucoup progressé, ils ne sont toujours pas aussi top.

zuzuf ; t'utilise quoi comme profiler stp?
zuzuf
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 27/10/2007 à 14:03
j'utilise gprof, le profiler du projet GNU, j'ai juste à ajouter -p aux paramètres du compilateur, et zouu j'ai un binaire qui enregistre le temps d'exécution de toutes les fonctions. Après un simple appel à gprof avec en paramètre le nom du binaire et on a une sortie détaillée de ce qui s'est passé, sinon kprof fait pareil mais en mode graphique, avec une interface bien intégrée à KDE. Mais gprof existe pour windows aussi, fournit avec mingw32 il me semble.
Linux a un noyau, windows un pepin
kod128
ProgBoarder
RemonterCiter Windows NT Firefox 2 - Posté le 27/10/2007 à 14:38
oki merci (langue)
Freem
Modérateur
RemonterCiter Windows NT Firefox 2 - Posté le 27/10/2007 à 15:44
Je regarderait, tient, ça a vraiment l'air sympa!
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,086 s - Crédits - Stats
1 connecté