Bonjour,
Le temps d'exécution d'un programme écrit en C++ (ou dans n'importe quel langage) peut être plus optimisé(plus petit) si on l'exécute sur une machine puissante et presque vide ?
Merci d'avance.
Bonjour,
Le temps d'exécution d'un programme écrit en C++ (ou dans n'importe quel langage) peut être plus optimisé(plus petit) si on l'exécute sur une machine puissante et presque vide ?
Merci d'avance.
Hello,
Un programme ne s'optimisera pas tout seul.
Mais sinon oui, il s'exécutera bien évidement plus rapidement sur un ordinateur plus puissant et/ou si aucun autre programme ne "consomme" du temps CPU derrière.
Il n'y aurait aucun but à l'évolution du matériel informatique sinon.
(AMD réveille toi ! Yen à marre qu'Intel profite de son avance pour ne rien sortir de nouveau...)
Merci pour votre réponse.
Deux autres questions svp :
- les messages d'affichage peuvent ils ralentir ce temps d'exécution?
- L'utilisation d'une bibliothèque (par exemple l'utilisation de boost pour générer des nombres aléatoires dans un code en c++) influence t-il ce temps d'exécution?
Tout influence le temps d'exécution : plus il y a de calculs / traitements et plus l'exécution sera longue.
Les entrées / sorties (lecture / écriture dans un fichier ou sur le réseau, mais aussi l'affichage à l'écran) sont des opérations "particulièrement lentes".
Mais tout est relatif, un cout prend probablement quelques (dizaines ?) de microsecondes. Par rapport à une addition c'est énorme, mais par rapport à la lecture d'un fichier c'est négligeable.
Cependant, à chaque fois qu'on se pose ces questions, c'est qu'on a un programme qu'on trouve trop lent.
Lancer le programme sans autre programme actif en parallèle (pas de jeu, ni de programme de calcul...)
En général, le meilleur moyen de gagner en rapidité, c'est de changer les algorithmes, pour réduire la complexité des calculs.
Par exemple, passer d'un tri en N! à un N², ou mieux N log(N). (en nombre d'accès aux éléments, N étant leur nombre).
Ensuite, améliorer la qualité pour réduire le facteur multiplicatif.
Passer de 4*N*log(N) à 2*N*log(N).
Enfin, si tout est déjà théoriquement optimal, on peut considérer le matériel.
Toute optimisation ne doit cependant être faite une fois qu'on sait ce qui prend effectivement du temps, et donc qu'on a utilisé un profiler.
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Et on fait ça comment concrètement ? j'ai pas compris grand chose
Concrètement, je n'ai jamais utilisé de profiler, parce que je n'ai jamais eu de soucis de performance.
Il faudrait que tu nous explique un peu ton programme, pour qu'on puisse être un peu plus concret.
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager