Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1322 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Comment optimiser proprement et inteligement un programme N

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Comment optimiser proprement et inteligement un programme N

n°748433
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 08:43:36  profilanswer
 

[quote]


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
mood
Publicité
Posté le 02-06-2004 à 08:43:36  profilanswer
 

n°748434
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 08:44:37  profilanswer
 

En fait je dois optimiser un programme pour qu'il soit plus rapide et je demande des conseils pour le faire correctement.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°748438
Moktar1er
No one replies...
Posté le 02-06-2004 à 08:53:07  profilanswer
 

tu sais, si tu ne nous en dit pas plus sur ton programme on ne va pas pouvoir faire grand' chose pour toi...
si tu veux justes le règles de base de l'optimisation, google est ton ami

n°748444
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 08:56:09  profilanswer
 

C'est un programme qui capture une image et en fait le traitement,je ne peux pas passer le source car c un programme pour une machine en entreprise.
Je demande des conseil d'optimisation,g ete voir sur google,mais cela n'est pas toujours tres clair.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°748446
Carbon_14
Posté le 02-06-2004 à 08:58:56  profilanswer
 

Faut optimiser le traitement....

n°748449
Moktar1er
No one replies...
Posté le 02-06-2004 à 09:00:38  profilanswer
 

. réduire les calculs sur des réels (à voir selon la précision dont tu as besoin...)
. précalculer ce qui peut l'être
. pour un parcours d'image, si tu fais des boucles imbriquées toujours faire le parcours des lignes avant celui des colonnes
. éviter les boucles imbriquées (vu que tes pixels sont certainement contigüs en mémoire, essaies de te réduire à une seule boucle)

n°748455
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 09:03:24  profilanswer
 

En fait,je me demandais un truc.
j'vais d declaration de pointeur dans ma methode,mais ce que j'ai fait c'est dans le constructeur :
toto1=new titi() ;
dans le constructeur,puis dans ma methode:
toto=toto1;
Est ce que c'est une bonne optimisation de faire les new en dehors de ma methode a optimiser ?


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°748479
el muchach​o
Comfortably Numb
Posté le 02-06-2004 à 09:27:05  profilanswer
 

Si c'est possible, oui. Il faut faire le moins d'opérations possible dans les boucles internes, donc si tu peux appeler tes constructeurs une seule fois avant le bouclage, te gêne pas : "précalculer ce qui peut l'être ".

n°748497
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 09:48:53  profilanswer
 

Merci,el muchacho je n'etais pas trop sur de cette methode,meme si elle me parraissait correcte.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°748548
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 10:29:52  profilanswer
 

Je me demandais aussi s'il etait possible de connaitre le temps pris par une instruction ?
exemple : bool ette ;combien de micro secondes cela prend t'il pour etre effectué ?
C'est peut etre quelque chose que l'on se demande jamais,mais moi qui fait parfois de l'assembleur sur un processeur a 4mhz,ca me sert.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
mood
Publicité
Posté le 02-06-2004 à 10:29:52  profilanswer
 

n°748553
Moktar1er
No one replies...
Posté le 02-06-2004 à 10:32:01  profilanswer
 

la déclaration d'une variable ça ne te prends pas de temps hein :o
c'est à la compilation que ça se passe

n°748564
Z80_Snake
Z80 RuleZ
Posté le 02-06-2004 à 10:38:03  profilanswer
 

Heu,bon,j'avoue,je l'avais oublié.
 
revivalcpc.free.fr(mon site)
revivalcpc.free.fr/hit(le site de ma classe en construction)
revivalcpc.free.fr/video(des videos amusantes)


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°750171
Z80_Snake
Z80 RuleZ
Posté le 03-06-2004 à 09:53:39  profilanswer
 

J'aurais le coder en asm direct.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°750205
nico168
Posté le 03-06-2004 à 10:09:17  profilanswer
 

tu as des outils qu'on appels je crois "profiler" et qui permet de savoir quels sont les sections de codes les plus executées et donc celles qui faut optimiser

n°750212
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-06-2004 à 10:14:46  profilanswer
 

- le coder en asm
- paralléliser au maximum
- user et abuser des prefetch
- user et abuser du MMX/SSE/SSE2/3d Now


---------------
J'ai un string dans l'array (Paris Hilton)
n°750240
Joel F
Real men use unique_ptr
Posté le 03-06-2004 à 10:31:41  profilanswer
 

Harkonnen a écrit :

- le coder en asm
- paralléliser au maximum
- user et abuser des prefetch
- user et abuser du MMX/SSE/SSE2/3d Now/Altivec


 
 :whistle:

n°750241
christophe​_d13
L'efficacité à tout prix.
Posté le 03-06-2004 à 10:31:43  profilanswer
 

Harkonnen> +1
 
- User et abuser du cerveau humain pour réfléchir. En plus ça rend intelligent.
- User et abuser des fonctions FPU
- User et abuser du cache L1 et L2
- Aligner le code et les données
 
Analyse et écrit au moins 3 codes différents qui font la même chose.
 
Pour te donnée une idée, d'une routine (bitbltalpha) faisant un traîtement ARGB de 79 cycles, je suis passé à 22 cycles. J'ai mis deux jours, mais ça valait le coup.

n°750258
christophe​_d13
L'efficacité à tout prix.
Posté le 03-06-2004 à 10:38:42  profilanswer
 

J'ai oublié :
- la parallélisation n'est effective que si le code est déjà dans le cache (déjà exécuté).
- paralléliser correctement avant le début de la boucle, ou faire un petit jmp pour vider le pipe et repartir sur u-pipe.

n°750277
cricri_
Posté le 03-06-2004 à 10:44:09  profilanswer
 

de l'asm ... affreux ... ;)
Y a tellement d'autre moyens d'optimiser presqu'aussi bien en C ;)

n°750351
christophe​_d13
L'efficacité à tout prix.
Posté le 03-06-2004 à 11:21:57  profilanswer
 

Citation :

- User et abuser du cerveau humain pour réfléchir. En plus ça rend intelligent.
Analyse et écrit au moins 3 codes différents qui font la même chose.


 
;)

n°750445
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-06-2004 à 12:04:20  profilanswer
 

cricri_ a écrit :

de l'asm ... affreux ... ;)
Y a tellement d'autre moyens d'optimiser presqu'aussi bien en C ;)


c'est justement le "presqu'aussi" qui pêche :o
asm et cerveau roulaize


---------------
J'ai un string dans l'array (Paris Hilton)
n°751944
Z80_Snake
Z80 RuleZ
Posté le 04-06-2004 à 08:48:02  profilanswer
 

Je ne peux pas le faire en asm,c C++ essentiellement.Par contre sur mon AmstraD CPC(+),la je fait de l'asm et l'optimisation je connait bien.Plein de contraintes et de limites pour coder ,mais ca motive a donner le meilleur de sois meme pour avoir quelque chose de tres interressant niveau visuel.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°752036
Z80_Snake
Z80 RuleZ
Posté le 04-06-2004 à 09:54:04  profilanswer
 

Urgent :g d sources en C avec des appel a des fonctions ::outv(machin chose)Ce sont des fonctions DOS mais bordland c++builder 5 ne les reconnais pas car il faut une version anterieure.Quelqu'un a t'il un compilateur gratuit qui accepte ces fonctions ?


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°752077
Carbon_14
Posté le 04-06-2004 à 10:14:44  profilanswer
 

Dans ma doc DOS de Borland C++ 5, y a rien pour outv(), peut-être pas le bon fichier d'aide. Dans HLP de Win 3.11 non plus.
C'est une fonction "classique" ou une macro, ou issue d'une bibliothèque ? Elle n'est pas définie dans un autre module ?
Elle est censée faire quoi ?

n°752083
HelloWorld
Salut tout le monde!
Posté le 04-06-2004 à 10:17:01  profilanswer
 

Si c'est des fonctions d'accès aux ports (outpw, outpd, ...) ben y'a pas de remède car WinNT/2K/XP empêche l'accès aux ports => plantage assuré.
Si c'est pour Win95, sous VC++ il faut mettre un underscore devant (_outp, ...), peut être que sous Borland aussi.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°752111
Z80_Snake
Z80 RuleZ
Posté le 04-06-2004 à 10:30:42  profilanswer
 

ces fonctions sont dans un source qui effectue un effet graphique(je me renseigne sur les démos pc),je vais tester pour l'underscore.
Merci


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°752266
Carbon_14
Posté le 04-06-2004 à 11:32:48  profilanswer
 

Si ça accède directement à la mémoire vidéo, savoir si c'est transposable sous Windôze qui va faire de la résistance (sous win3.11/95/98(Me) on accède encore au matériel directement => "danger" potentiel et pb portabilité).
J'avais pas pensé à _ avant mais dans la liste pas trouvé non plus.
 
Si la fonction n'est pas classique, faudrait voir ce qu'elle fait (fonctionnellement).... On trouve des outv() dans du code sur Google mais ils sont "perso" donc peut-être pas "génériques"/standard.

n°752267
HelloWorld
Salut tout le monde!
Posté le 04-06-2004 à 11:32:49  profilanswer
 

Ok.
Oublie tout. C'est de la vieille prog graphique sous DOS.
On ne fait plus du tout comme ça (attaquer le hardware), on passe par une couche logicielle (DirectX, OpenGL, ...)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°752340
Z80_Snake
Z80 RuleZ
Posté le 04-06-2004 à 11:53:12  profilanswer
 

Ok,je prend note,en assembleur "j'attaque" directement la machine,mais sur pc je vais etudier l'openGl,qui d'ailleur est portable sous linux


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°752353
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-06-2004 à 11:57:06  profilanswer
 

Z80_Snake a écrit :

ces fonctions sont dans un source qui effectue un effet graphique(je me renseigne sur les démos pc),je vais tester pour l'underscore.
Merci


t'es allé voir ce topic ? :ange:
http://forum.hardware.fr/forum2.ph [...] 611&cat=10


---------------
J'ai un string dans l'array (Paris Hilton)
n°752467
Z80_Snake
Z80 RuleZ
Posté le 04-06-2004 à 13:38:36  profilanswer
 

Harkonnen:merci pour le lien.


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°762587
Z80_Snake
Z80 RuleZ
Posté le 14-06-2004 à 11:46:12  profilanswer
 

J'ai effectué des creation d'instances dans le constructeur de ma classe au lieu de les metre dans une methode,mais au lieu que celle ci soit plus rapide ,elle est plus lente qu'avant les modifs,d'ou cela peut il venir ?


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°762607
Taz
bisounours-codeur
Posté le 14-06-2004 à 12:02:56  profilanswer
 

j'ai rien compris

n°762629
Z80_Snake
Z80 RuleZ
Posté le 14-06-2004 à 12:29:50  profilanswer
 

taz"j'ai rien compris"
Moi aussi,c'est pour ca que je demande


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°762708
Taz
bisounours-codeur
Posté le 14-06-2004 à 13:33:03  profilanswer
 

mais moi je veux dire j'ai rien compris de ce que tu as fait.

n°762711
Dion
Acceuil
Posté le 14-06-2004 à 13:35:02  profilanswer
 

Taz a écrit :

mais moi je veux dire j'ai rien compris de ce que tu as fait.


 
mais lui non plus, mais lui non plus :D


---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
n°762724
Z80_Snake
Z80 RuleZ
Posté le 14-06-2004 à 13:45:53  profilanswer
 

En fait dans une methode de ma classe j'ai enleve toute les creations d'instances qui ralentissais cette classe.
constructeur :
m_pTraitement357_1=new C357(&CAMERA1,this);
methode "ontimer" :
pointeur=m_pTraitement357_1;
 
voila,et je me demande si c'est correct


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°762729
Taz
bisounours-codeur
Posté le 14-06-2004 à 13:49:27  profilanswer
 

on comprends rien

n°762731
Z80_Snake
Z80 RuleZ
Posté le 14-06-2004 à 13:53:33  profilanswer
 

Tu comprend rien


---------------
L'homme qui sait se contenter d'un cpc sais aprecier les bonnes choses de la vie.
n°762736
Taz
bisounours-codeur
Posté le 14-06-2004 à 13:58:49  profilanswer
 

ben ce que tu dis ne veux rien dire
 
 
"hey j'ai fais une variable i et le pointeur est incrémenté"

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Comment optimiser proprement et inteligement un programme N

 

Sujets relatifs
Programme pour faire du C++ (code + design)execution de programme
Comment mettre à jour proprement une IHM relative à un traitement.programme qui donne les nombres parfaits
Peut on lancer une commande shell unix apartir d'un programme Adaprogramme C# erreur :Unable to connect to any hosts....
[c] mon programme ne se lance pas !!pkoi? helpPeut-on flasher la bibliothèque de programme d'une casio graph 65 ?
programme pour installation automatiqueclic de la souris programmé
Plus de sujets relatifs à : Comment optimiser proprement et inteligement un programme N


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR