En informatique , les performances d'un ordinateur correspondent à la quantité de travail utile accomplie par un système informatique . En dehors de tout contexte spécifique, on les évalue en termes de précision, d'efficacité et de rapidité d'exécution des instructions des programmes . Pour obtenir des performances informatiques élevées, un ou plusieurs des facteurs suivants peuvent intervenir :
- Délai de réponse court pour une tâche donnée.
- Débit élevé (vitesse de traitement des tâches).
- Faible utilisation des ressources informatiques .
- Compression et décompression de données rapides (ou très compactes) .
- Haute disponibilité du système informatique ou de l'application.
- Bande passante élevée .
- Temps de transmission des données court .
Le mot performance dans performance informatique signifie la même chose que performance signifie dans d'autres contextes, c'est-à-dire « Dans quelle mesure l'ordinateur effectue-t-il le travail qu'il est censé faire ? »
En tant qu'aspect de la qualité logicielle
Les performances des logiciels informatiques , et en particulier le temps de réponse des applications , constituent un aspect de la qualité logicielle important dans les interactions homme-machine .
Ingénierie de la performance
L'ingénierie de la performance au sein de l'ingénierie des systèmes englobe l'ensemble des rôles, compétences, activités, pratiques, outils et livrables appliqués à chaque phase du cycle de vie du développement des systèmes, garantissant qu'une solution sera conçue, mise en œuvre et prise en charge opérationnellement pour répondre aux exigences de performance définies pour cette solution.
L'ingénierie des performances consiste constamment à trouver des compromis entre différents types de performances. Il arrive qu'un concepteur de processeur parvienne à améliorer les performances globales d'un processeur en optimisant l'un des aspects présentés ci-dessous, sans pour autant dégrader ses performances dans d'autres domaines. Par exemple, en utilisant des transistors plus performants et plus rapides .
Cependant, pousser un type de performance à l'extrême peut parfois conduire à un processeur aux performances globales inférieures, car d'autres aspects importants ont été sacrifiés pour obtenir un chiffre impressionnant, par exemple la fréquence d'horloge de la puce (voir le mythe du mégahertz ).
Ingénierie des performances des applications
Aspects de la performance
Les indicateurs de performance informatique (éléments à mesurer) comprennent la disponibilité , le temps de réponse , la capacité du canal , la latence , le temps de service , la bande passante , le débit , l'efficacité relative , l'évolutivité , les performances par watt , le taux de compression , la longueur du chemin d'exécution des instructions et l'accélération . Des benchmarks de processeurs sont disponibles.
Disponibilité
temps de réponse
- Délai de service – Temps nécessaire pour effectuer la tâche demandée.
- Temps d'attente – Durée pendant laquelle la requête doit attendre que les requêtes en file d'attente la précèdent avant de pouvoir être exécutée.
- Temps de transmission – Durée nécessaire pour acheminer la requête vers l'ordinateur effectuant le traitement et la réponse vers l'expéditeur.
Vitesse de traitement
Certains concepteurs de systèmes construisant des ordinateurs parallèles choisissent leurs processeurs en fonction de leur rapport vitesse/prix.
Capacité du canal
La théorie de l'information , développée par Claude E. Shannon pendant la Seconde Guerre mondiale , définit la notion de capacité d'un canal et fournit un modèle mathématique permettant de la calculer. Le résultat principal établit que la capacité du canal, telle que définie ci-dessus, est donnée par le maximum de l' information mutuelle entre l'entrée et la sortie du canal, la maximisation étant effectuée par rapport à la distribution des entrées.
Latence
Bande passante
La bande passante désigne parfois le débit binaire net (également appelé débit de pointe, débit d'information ou débit utile de la couche physique), la capacité du canal ou le débit maximal d'une voie de communication logique ou physique dans un système de communication numérique. Par exemple, les tests de bande passante mesurent le débit maximal d'un réseau informatique. Cette définition s'explique par le fait que, selon la loi de Hartley, le débit de données maximal d'une liaison de communication physique est proportionnel à sa bande passante en hertz, parfois appelée bande passante fréquentielle, bande passante spectrale, bande passante RF, bande passante du signal ou bande passante analogique.
débit
Dans les circuits intégrés, un bloc d'un diagramme de flux de données possède souvent une seule entrée et une seule sortie, et traite des paquets d'informations discrets. Les modules FFT ou les multiplicateurs binaires en sont des exemples . Le débit étant l'inverse de l'unité de temps de propagation (secondes par message ou secondes par sortie), il permet de relier un dispositif de calcul exécutant une fonction dédiée, tel qu'un ASIC ou un processeur embarqué, à un canal de communication, simplifiant ainsi l'analyse du système.
Évolutivité
Performance par watt
Pour les ordinateurs de vol spatial, le rapport vitesse de traitement par watt est un critère de performance plus utile que la vitesse de traitement brute en raison des ressources énergétiques embarquées limitées.
Taux de compression
nombre de transistors
Points de référence
Les benchmarks les plus connus sont les benchmarks SPECint et SPECfp développés par la Standard Performance Evaluation Corporation et le benchmark EEMBC .
tests de performance logicielle
Le profilage s'effectue en instrumentant soit le code source du programme , soit son exécutable binaire, à l'aide d'un outil appelé profileur (ou profileur de code ). Les profileurs peuvent utiliser différentes techniques, telles que les méthodes événementielles, statistiques, instrumentées et de simulation.
Processeur
L'unité centrale de traitement (CPU), également appelée processeur central, processeur principal ou simplement processeur, est le processeur principal d'un ordinateur donné. Ses circuits électroniques exécutent les instructions d'un programme informatique, telles que les opérations arithmétiques, logiques, de contrôle et d'entrée/sortie (E/S).
Les performances ou la vitesse d'un processeur dépendent notamment de sa fréquence d'horloge (généralement mesurée en hertz) et du nombre d'instructions par cycle (IPC), qui déterminent ensemble le nombre d'instructions par seconde (IPS) que le processeur peut exécuter. De nombreuses valeurs d'IPS publiées représentent des vitesses d'exécution « maximales » pour des séquences d'instructions artificielles comportant peu de branchements, alors que les charges de travail réelles sont composées d'un mélange d'instructions et d'applications, dont certaines s'exécutent plus longtemps que d'autres. Les performances de la hiérarchie mémoire influent également fortement sur les performances du processeur, un facteur rarement pris en compte dans le calcul des IPS. Face à ces problèmes, divers tests standardisés, souvent appelés « benchmarks », tels que SPECint, ont été développés pour tenter de mesurer les performances effectives réelles dans les applications courantes.
Les performances des ordinateurs augmentent grâce à l'utilisation de processeurs multicœurs, qui intègrent deux processeurs distincts (appelés cœurs) sur un seul circuit intégré. Idéalement, un processeur bicœur devrait être presque deux fois plus puissant qu'un processeur monocœur. En pratique, les gains de performance sont bien moindres, de l'ordre de 50 %, en raison des imperfections des algorithmes et de l'implémentation logicielle. L'augmentation du nombre de cœurs d'un processeur (bicœur, quadricœur, etc.) accroît la charge de travail qu'il peut traiter. Le processeur peut ainsi gérer de nombreux événements asynchrones, interruptions, etc., ce qui peut impacter négativement le processeur en cas de surcharge. On peut comparer ces cœurs à différents étages d'une usine, chacun gérant sa propre tâche. Il arrive que plusieurs cœurs traitent les mêmes tâches que des cœurs voisins si un seul cœur est insuffisant. Les processeurs multicœurs améliorent la capacité d'un ordinateur à effectuer plusieurs tâches simultanément en fournissant une puissance de calcul supplémentaire. Cependant, le gain de vitesse n'est pas directement proportionnel au nombre de cœurs ajoutés. En effet, les cœurs doivent interagir via des canaux spécifiques, et cette communication inter-cœurs consomme une partie de la puissance de calcul disponible.
Du fait des capacités spécifiques des processeurs modernes, telles que le multithreading simultané et l'uncore (qui impliquent le partage des ressources du processeur pour une meilleure utilisation), la surveillance des performances et de l'utilisation du matériel est devenue progressivement plus complexe. En réponse, certains processeurs intègrent une logique matérielle supplémentaire qui suit l'utilisation réelle des différentes parties du processeur et fournit divers compteurs accessibles aux logiciels ; la technologie Performance Counter Monitor d'Intel en est un exemple.
Optimisation des performances
Le réglage systématique suit les étapes suivantes :
- Évaluer le problème et établir des valeurs numériques permettant de catégoriser les comportements acceptables.
- Mesurer les performances du système avant toute modification.
- Identifiez la partie du système qui est essentielle à l'amélioration des performances. Il s'agit du goulot d'étranglement .
- Modifiez cette partie du système pour supprimer le goulot d'étranglement.
- Mesurer les performances du système après modification.
- Si la modification améliore les performances, adoptez-la. Si elle les dégrade, rétablissez la configuration d'origine.
Performance perçue
L'affichage d'un écran de démarrage (voir Écran de démarrage) ou d'une boîte de dialogue de progression ne réduit pas le temps de lancement d'une application ou de téléchargement d'un fichier. Toutefois, il répond à certains besoins : il donne l'impression d'un traitement plus rapide et fournit un repère visuel indiquant que le système est en cours de traitement.
Dans la plupart des cas, l'amélioration des performances réelles entraîne une amélioration des performances perçues, mais lorsque les performances réelles ne peuvent être améliorées en raison de limitations physiques, des techniques peuvent être utilisées pour améliorer les performances perçues.