Optimisation du code ou confiance - dans les performances des machines

un post dans le forum general de Darkryss m’a interpellé

Etant technicien info et confronté a ce genre de situation j’aimerais avoir l’avis des develloper :slight_smile:

merci

bah, les profs nous font régulièrement cette remarque, mais il faut bien avouer que l’optimisation est essentiel.
C’est surtout un combat entre le code bas/moyen niveau © et les langages de niveau supérieurs qui offrent de nombreuses libertés :neutre:

Il existe 2 grandes écoles sur la programmation:

  • celle ou l’on suit un cursus scolaire,avec toutes ces règles sur la structure et autres conventions.

  • celle qui vient des autodidactes (comme moi et beaucoup de personnes du millieu des programmeurs en tous genres) l’extrème programming.

L’une comme l’autre devant se plier à un minimum de rigueur dans le code,afin d’éviter que le programme ne soit pas trop gourmand en terme de ressources machine.

Un programmeur contientieux se devra de faire tourner son programme sur une machine inférieur en terme de puissance pour le valider.

La plupart des programmeurs développent sur des portables, ensuite déploient leur(s) solution(s) sur une machine de test, puis sur une machine de production.

Le choix du langage ou de la plateforme à utiliser ,la aussi 2 grandes écoles:

windows vs open source

windows en raison du fait que c’est encore la plateforme la plus utilisée dans le monde.

l’open source qui rallie de plus en plus d’adepte.

Ces deux écoles ont un point commun le langage C.

Por revenir au sujet de l’augmentation de la puissance des machines sur laquel l’on pourrait se reposer peut causer des points bloquants:

-Augmentation de puissance est Synonymes d’avancer technologique(s),
passage du 16 au 32 au 64 bits est un exemple concret de problème auquel
beaucoup de programme se sont vu tout simplement mis hs ou nécéssitant de revoir une bonne partie du code, voir meme à une certaines époque des programmes pour faire ralentir l’horloge du système pour le bon fonctionnement de celui ci.

J’espére avoir plus ou moins éclairer le chemin tordu de la question sans trop déborder :jap:

Je pense qu’il faut trouver un bon compromis en fonctionde ce que tu programme.
Exemple si tu fais un logiciel d’impression de facture. Tu n’a pas besoin d’optimiser le code vu que de tt facon ton imprimante ne suit pas.
Si tu fais un logiciel qui fait bouger un robot en temps réel la tu dois optimiser pour etre sur que tout les signaux emis par le robot soit bien percu.
Maintenant j’ai pris deux extremes mais c a verifier a chaque fois.

Il ne faut pas oublier, qu’avant, un prog ne dépassait pas quelques Ko, mais on passait pas mal de temps à l’optimiser, et on refaisait tout à chaque fois.
On utilisait à peine le système, avec tous les problèmes de compatibilité que ça posait. (pas de driver imprimantes, sons, etc.)

Maintenant, quand on code une grosse application, on utilise souvent des briques logicielles qu’on ne maîtrise pas, ett les programmes font plusieurs Mo, sont développés par un grand nombre de développeurs. Donc d’une part, les briques logicielles ont un usage universel, et ne sont donc pas optimisée pour un usage précis, et d’autre part, la partie du projet maîtisée par les développeurs atteint une taille telle que la fiabilité passe avant les performance.

Mais je parle de manière générale, il y a sans dout des méthodes pour optimiser même de gros programmes, et quand je parle de briques logicielles pas optimisée, ce n’est pas toujours le cas, en ce qui concerne les graphismes, on n’aurait jamais espéré obtenir la puissance actuelle quand on codait sur un proc en assembleur.
Enfin, si on utilise autant de puissance de processeur, c’est qu’elle est disponible, et comme tout a toujours un cout, quand un éditeur a le choix entre développer une fonctionnalité supérieure à tout ses concurrents, ou se contenter d’optimiser son existant, c’est le 1er choix qui est fait, et ce n’est plus le problème des développeurs.