begin process at 2012 05 30 00:50:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

optimiser un code en C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

optimiser un code en C

lundi 12 décembre 2005 à 07:01:48 | optimiser un code en C

serom00

Bonjour,

Je cherche a optimiser mon code C.

J'utilse VC++7

Mais je me pose pleins de questions:
Tout d'abord je voudrai savoir si quelqu'un connaitrai un bon tutorial sur la facon de coder: Du genre: les operateurs qu'ils faut eviter, si il vaut mieu utiliser des variables globales ou locales,..., etc. J'ai deja chercher sur le net, mais j'ai rien trouver de satisfaisant.
Ou si vous avez simplement des conseils, je suis interesse aussi.
 
Ensuite je voudrai savoir si c'est une bonne idee de vouloir reecrire certaines fonctions en assembleur.
 Je fais de l'image processing et une bonne partie du temps CPU est utilise par des fonctions tres simples mais appellees des milliers de fois (genre convolution,...)
Mais se que j'ai pu lire sur le net me decourage un peu de passer a l'ASM. Surtout que je suis plutot un debutant en C, et que d'apres se que j'ai lu VC++ est un des meilleurs compilo niveau optimisation. (d'ailleurs qu'en pense vous?)
Donc est-ce vraiment rentable de me plonger la dedans?

enfin, je souhaiterai faire du profiling sur mon code. Connaissez vous un bon outil pour cela. Car dans ma version de VC++, le profiling n'est pas disponible

Voila,
 
merci pour vos reponses.


lundi 12 décembre 2005 à 12:16:03 | Re : optimiser un code en C

NitRic

pour les variables globales, apprend a bien doser, c'est à dire, ne pas utiliser/déclarer de variable globale quand c'est pas vraiment necessaire, faut pas mettre en globale juste pour le « fun » ...

pour ré-écrire des fonctions en assembleur, tu peux le faire oui mais encore la, fait le seulement si le compilateur n'arrive pas a optimiser autant que tu le souhaiterais(ca n'arrive pas souvent), comme par exemple, si le compilateur n'utilise pas certaines instructions qui pourrait permettre a ton code d,être beaucoup plus rapide ou autre, etc... ou bien utiliser certaines instructions(pour optimiser) spécifique a certaines architecture, etc... il faut faire des testes dans ce cas, C vs ASM et puis prendre le meilleur des deux mondes mais il faut faire gaffe de ne pas utiliser des instructions spécifique a une architecture en particulié parce que sinon ca ne fonctionnerat pas sur d'autre. le compilateur, si tu ne lui indique pas d'architecture particulière, va utiliser du compatible(x86 et compatible par exemple (intel/amd/...)) sans utiliser d'instructions spécifiques a intel ou amd par exemple ... il est plutôt rare d'utiliser de l'assembleur en C sauf pour des besoins très spécifiques

et oui, le compilateur de MS est un des meilleurs sous Windows, même s'il n'est pas très conforme aux normes ANSI ...(mise a part MSVS 2005 qui est beaucoup plus conforme que les versions précédentes) ... (et la j'ai pas dit LE meilleur mais UN des meilleurs)

pour l'optimisation, il n'y a rien(a ma connaissance) de « vraiment complet » a ce sujet parce que c'est plutôt vague.
la seule chose que l'on trouve généralement, ce sont des trucs/astuces/... mais rien de « vraiment » spécifique ...

prenons un exemple, un source qui ce trouve ici même sur ce site: http://www.cppfrance.com/code.aspx?ID=35020
regarde tous les strcat() qu'il utilise, c'est énorme! pour les raisons données plus bas. y'a matière a optimisation la ...

il faut juste étudier le projet, fonction/fonction, elles doivent faire quoi et de quelle facon(optimale) devrait elle le faire? étudier plusieurs possibilités/solutions/... faire des testes/comparatifs/... etc...

j'aurais peut-être du le dire au début mais bon:
   j'suis pas très doué pour ce genre d'explication/détail, mais j'ai essayé d'expliquer du mieux possible,
   désolé si ce n'est pas très claire/compréhensible/... ou trop vague/... :(

voici quelques liens:
http://graphics.stanford.edu/~seander/bithacks.html
http://www.abarnett.demon.co.uk/tutorial.html
http://www.eventhelix.com/RealtimeMantra/Basics/OptimizingCAndCPPCode.htm
http://www.numerix-dsp.com/appsnotes/c_coding.html
http://www.azillionmonkeys.com/qed/optimize.html
...

note:
  faut pas devenir fou avec l'optimisation non plus ... faut apprendre a bien « doser » et optimiser ce qui
  doit être ou devrait être optimisé. ne cherche pas a optimiser _toutes_ les lignes de ton code, c'est
  de l'abus ca :P

~(.:: NitRic ::.)~
lundi 12 décembre 2005 à 16:24:35 | Re : optimiser un code en C

juki_webmaster

Membre Club
Aux heures perdut tu peux lire ceci: http://mapage.noos.fr/emdel/ > Bien programmer en langage C http://www.isty-info.uvsq.fr/~rumeau/fclc/ > Sa c'est pas mal a lire de temps de temps, ya pas mal d'info en tout genre.
lundi 12 décembre 2005 à 22:55:34 | Re : optimiser un code en C

serom00

Merci beaucoup pour vos reponses, et pour vos sources.
Je vais me plonger dedans.

Merci encore
mardi 13 décembre 2005 à 21:19:38 | Re : optimiser un code en C

kaervas

Membre Club
Interessant tout ca, une question, il y a une commande sous unix pour savoir le temps d'execution du programme (en cycle processeur) ?


Cette discussion est classée dans : net, code, genre, vc, optimiser


Répondre à ce message

Sujets en rapport avec ce message

Editeur de code VS .NET VC++ [ par Koryn38 ] Hi, je cherche à comprendre pourquoi sous VStudio .NET, VC++, j'ai d'importants décalages, en mode debug notamment, entre la véritable ligne executée vente de vc++.net pas cher !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ par timbo2 ] Bonjour à tous,Je possède VC++.net que je n'utilise pas car je souhaite passer sur delphi 8.0 .net.Donc à tous ceux que ça interesse , je le ve Indicateur code natif ou managé en VC++ .NET [ par hherry ] Bonjour,Je souhaite compiler une DLL (développée sous VC++ 6) en 100% managé avecVC++ .NET 2003. Je n'ai pas droit à l'erreur car c'est pour une appli [VC++.NET 2005Beta2]Commet renommer une fenêtre? [ par tlemcenvisit ] Salut Je travaille avec Visual Studio .NET 2005 Beta2; J'ai créé un nouveau projet VC++ CLR "windows application form"; J'ai obtenu la fenêtre Form1 e conversion vc++ en .net [ par koodann ] Bonjour tout le monde. je travaille sur un projet en VC++ 6.0 et je dois convertir le projet en .net.en VC++ pas de problème mais en .net (que je ne c DLL de VC++ à VB.net [ par toxjamescook ] bonjour j'ai besoin d'un petit renseignement:Voila je souhaites recupérer des infos numériques de deux bus can puis les visualiser par une interface.j programmer pour windows 98 avec Vc++.net [ par esieaa ] J'essaye de faire marcher un programme d'envoi d'email utilisant les MFC sur un ordinateur Windows 98. Et bien sur si je pose la question c'est parce besoin d'un code source en VC++ [ par amina_6a ] salut ,moi j 'ai pas vraiment un probleme ,mais j 'ai besoin d'un code source pour une application qui permet la communication avec les peripheriques Créér une feuille modale en VC++ .NET. [ par Dionysos49 ] Bonjour,Dans mon projet, j'ai une feuille de dialogue principale. J'en ai ajouté une seconde que j'appelle depuis la première avec : CDialog OptionSrv Probleme VS.NET 2003 ... Prog VC++6 avec fstream.h [ par supergrey ] Bonjour, je n'arrive pas a compiler un programme fait sous VC++6. l'erreur suivante apparait:error C2065: 'ifstream' : identificateur non déclaréPourt


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales