Skip to main content

Qu'est-ce que l'optimisation du programme?

L'optimisation du programme est le processus de modification d'un programme informatique d'une manière qui fait que le programme s'exécute plus rapidement, consomme moins de ressources ou fonctionne généralement avec un niveau d'efficacité plus élevé.La tâche d'optimisation peut être effectuée automatiquement par certains compilateurs de langage de programmation, intentionnellement en utilisant un programme d'optimisation, ou manuellement par des programmeurs qui passent par le code source et tentent de faire des améliorations spécifiques.En général, l'optimisation du programme est effectuée avec une fin spécifique à l'esprit, car il y a très peu d'optimisations générales qui peuvent être faites à un programme qui ne réduit pas en quelque sorte l'état optimisé d'une autre partie du programme, ce qui signifie qu'un programme peut généralementSoyez optimisé pour la vitesse ou l'utilisation des ressources, mais généralement pas les deux.Une complication qui peut se produire avec certains types d'optimisation est que de nombreux langages de programmation de haut niveau fournissent un si grand niveau d'abstraction entre le code natif et le langage informatique que l'optimisation peut être difficile ou impossible à mettre en œuvre sur toutes les plateformes dans toutes les situations, en particulier avecLes langues interprétées qui utilisent la compilation juste en temps (JIT).

Un concept important dans l'optimisation du programme est l'idée qu'une optimisation a généralement une sorte de prix.Un exemple de cela est que, lorsqu'un morceau de code est optimisé pour s'exécuter plus rapidement, l'augmentation de la vitesse pourrait avoir le prix de la lisibilité du code, de l'utilisation de la mémoire, de la flexibilité du programme ou d'un certain nombre d'autres coûts.Cela signifie que l'optimisation du programme doit être un processus ciblé, avec l'intention de faire fonctionner un aspect d'un programme de manière meilleure tout en étant disposé à sacrifier l'efficacité d'autres aspects.

Différents types d'optimisation du programme peuvent être effectués à différents stades dedéveloppement de programme.Pendant la conception, une large optimisation peut être effectuée en s'assurant qu'un programme semble s'exécuter efficacement.Lorsque vous travaillez avec le code source réel, les optimisations peuvent inclure l'assurance qu'il n'y a pas de commandes étrangères, d'appels répétitifs ou de fonctions mal écrites.À la compilation, de nombreuses optimisations sont automatiquement effectuées par le compilateur et peuvent être guidées grâce à l'utilisation de différents commutateurs de compilateur ou directives par le programmeTrop complexe pour être pratique pour les programmeurs humains.Cela peut impliquer des instructions de déplacement dans un programme afin qu'ils soient exécutés à partir de l'ordre à l'origine, mais de manière plus efficace pour le processeur.Il peut également impliquer des ressources de déplacement intentionnellement telles que les blocs de mémoire afin qu'ils puissent être accessibles plus rapidement.La majeure partie de l'optimisation du programme se produit automatiquement au niveau du compilateur.

Une complication avec une optimisation de programme répétée ou agressive est que, une fois qu'un programme a été modifié pour exécuter plus efficacement, il devient généralement plus difficile à modifier à d'autres fins, comme l'ajout de fonctionnalités ouCorrection de bogues.Cela peut se produire lorsque les optimisations commencent à verrouiller les comportements du programme définis qui ne sont pas facilement modifiés ou adaptés à un nouveau code sans nécessiter que toutes les optimisations soient annulées.Un problème plus important est que, dans de nombreux cas, un programme optimisé devient moins lisible par l'homme, car les astuces et les raccourcis sont utilisés au lieu de commandes concises et de structures de contrôle classiques.Pour ces raisons, il existe souvent un niveau d'optimisation du programme à laquelle il est acceptable de s'arrêter, même si les modifications de code drastiques peuvent rendre un programme un peu plus efficace.