Depuis que la métier de programmation existait, et l’homme est en lutte continu afin de d’aboutir à une combinaison à la fois harmonique et logique pour créer un programme performent…
Ce pendant plusieurs facteurs interviennent afin d’aboutir à un bon résultat, et j’appuie encore une fois sur le mot « bien » car on peut aboutir par mille et une méthode à un programme qui résout l’affaire sans être performent.
Sur ce coup la, je donne un exemple assez basique mais qui explique très Bien la chose. Parmi les problèmes les plus basique en programmation qu’affronte les jeunes informaticiens est la permutation de deux variables, en d’autre terme comment peut on mettre le contenu d’une variable A dans le contenu d’une Variable B et vice vers ça sans tout de même perdre le contenu de ces deux informations.
La solution sera dans se cas :
A :=B
B :=C
A la fin de ces instructions on aura le contenu de A dans celui de B et vise vers ça.
Une deuxième idée pour résoudre le même problème serait de s’appuyer sur une idée mathématique dont le principe est simple : ayant une somme de deux nombres, en connaissant l’un on peut connaître l’autre.
La solution sera dans ce cas :
A :=A+B
B :=A-B
A :=A-B
Alors comment évaluer alors la performance de ces deux programmes ?
Certes, les deux algorithmes ne sont pas assez complexes mais sont de nature différentes et peuvent vous donner une idée pour des programmes de milliers de lignes.
Le premier Programme s’appuie sur une idée original et logique (C’est comme si on utilise un troisième verre pour échanger le contenu de deux verres de départ), l’algorithme fait intervenir alors une variable intermédiaire pour résoudre l’affaire.
Un programme qui s’exécute rapidement du fait que l’ensemble des opérations sont des affectations mémoires qui ne nécessite pas de temps processeur. Le défaut réside dans l’allocation d’une autre case mémoire ou d’une variable supplémentaire qui n’est pas mentionné dans le problème de départ.
Le deuxième Programme lui, s’appuie sur une propriété mathématique (qu’on appelle aussi logique métier, vu Bien sure la nature même de la problématique), et utilise une suite d’opérations arithmétique pour résoudre l’affaire.
Un programme assez long par rapport au premier vu que le traitement en question est à la fois des opérations arithmétiques et des affectations mémoires. Mais l’avantage ici et qu’il n’y a pas d’allocation de ressources supplémentaires.
A travers ces deux solutions on peut bien voir le rapport entre un programme qui consomme de la mémoire tout en étant rapide en temps d’exécution contre un programme qui ne nécessite pas de ressources supplémentaires mais qui à un temps de réponse assez long. Et le pauvre programmeur devra choisir selon ses besoins fonctionnels et l’architecture de sa machine.