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
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
[edit]
Oouppss j'ai oublié de mettre les liens, ce qui est le minimum de la courtoisie, dans ce genre de cas
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
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
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
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
merki
)
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
kod128
ProgBoarder
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
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
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
Windows NT
Firefox 2 - Posté le 27/10/2007 à 14:38
oki merci
Freem
Modérateur
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
Message
Formatage
Note: pour partager du code source, merci d'utiliser le
wall
!
Smileys
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
Forums
ProgBoards » Annonces
ProgBoards » Développement
ProgBoards » Café
ProgBoards » Petites annonces
Informatique » Algorithmes
Informatique » Logiciel
Informatique » Matériel
Informatique » Graphisme
Informatique » Sécurité
Langages » BASIC
Langages » Pascal / Delphi
Langages » C & Cie.
Langages » Assembleur
Langages » Java
Langages » Autres Langages
Langages » Bibliothèques
Web » HTML / XML
Web » PHP / ASP
Web » Flash & Autres
Groupes de travail » FlexProject
Groupes de travail » Kovu (Bot IRC)
Groupes de travail » PHPMonitoring
Documentation » Linux / Unix
Documentation » ProgBoards
Documentation » QBasic
Documentation » C & Cie.
Ecologie » Solaire
Ecologie » Transport
Liste des forums
Membres
Inscrivez-vous
Mot de passe perdu?
Liste des membres
Groupes
Liste des groupes
Projets
Liste des projets
Logithèque
Les logiciels libres
Outils
Wall (codes sources)
Timestamp Unix
Interrogation whois
Goodies
T'chat IRC
#progboards (3)
Quotes IRC
1