Frais généraux (informatique) - Overhead (computing)

En informatique , les frais généraux sont toute combinaison de temps de calcul excédentaire ou indirect, de mémoire, de bande passante ou d'autres ressources nécessaires à l'exécution d'une tâche spécifique . Il s'agit d'un cas particulier de frais généraux d'ingénierie . Les frais généraux peuvent être un facteur décisif dans la conception d'un logiciel, en ce qui concerne la structure, la correction d'erreurs et l'inclusion de fonctionnalités. Des exemples de surcharge de calcul peuvent être trouvés dans la programmation fonctionnelle , le transfert de données et les structures de données.

Conception de logiciels

Choix de la mise en œuvre

Un programmeur/ingénieur logiciel peut avoir le choix entre plusieurs algorithmes , encodages , types de données ou structures de données , chacun ayant des caractéristiques connues. Lors du choix parmi eux, leurs frais généraux respectifs doivent également être pris en compte.

Compromis

En génie logiciel , les frais généraux peuvent influencer la décision d'inclure ou non des fonctionnalités dans les nouveaux produits, ou même de corriger des bogues. Une fonctionnalité qui a une surcharge élevée peut ne pas être incluse - ou nécessite une grande incitation financière pour le faire. Souvent, même si les fournisseurs de logiciels sont bien conscients des bogues dans leurs produits, le gain de les corriger ne vaut pas la récompense, en raison des frais généraux.

Par exemple, une structure de données implicite ou une structure de données succincte peut fournir une faible surcharge d'espace, mais au prix de performances lentes (compromis espace/temps).

Complexité d'exécution du logiciel

La complexité algorithmique est généralement spécifiée en utilisant la notation Big O . Cela ne fait aucun commentaire sur la durée d'exécution de quelque chose ou sur la quantité de mémoire qu'il utilise, mais comment son augmentation dépend de la taille de l'entrée. L'overhead ne fait volontairement pas partie de ce calcul, puisqu'il varie d'une machine à l'autre, contrairement au temps d'exécution fondamental d'un algorithme.

Cela doit être mis en contraste avec l' efficacité algorithmique , qui prend en compte toutes sortes de ressources - une combinaison (bien que non triviale) de complexité et de surcharge.

Exemples

Programmation informatique (temps d'exécution et temps de calcul)

L'appel d'une fonction introduit une petite surcharge d'exécution. Parfois, le compilateur peut minimiser cette surcharge en insérant certains de ces appels de fonction .

Caches CPU

Dans un cache CPU , la "taille du cache" (ou capacité ) fait référence à la quantité de données qu'un cache stocke. Par exemple, un « cache de 4 Ko » est un cache qui contient 4 Ko de données. Le "4 Ko" dans cet exemple exclut les bits supplémentaires tels que les informations de trame, d'adresse et de balise.

Communications (surcharge de transfert de données)

L'envoi fiable d'une charge utile de données sur un réseau de communication nécessite l'envoi de plus que la simple charge utile elle-même. Cela implique également l'envoi de diverses données de contrôle et de signalisation ( TCP ) nécessaires pour atteindre la destination. Cela crée une surcharge de protocole, car les données supplémentaires ne contribuent pas à la signification intrinsèque du message.

En téléphonie , la composition du numéro et le temps d'établissement de l'appel sont des frais généraux. Dans les radios bidirectionnelles (mais semi-duplex ), l'utilisation de "over" et d'autres signalisations nécessaires pour éviter les collisions est un surcoût.

La surcharge de protocole peut être exprimée en pourcentage d' octets non applicatifs ( synchronisation de protocole et de trame ) divisé par le nombre total d'octets dans le message.

Encodages et structures de données (taille surcoût)

L' encodage des informations et des données introduit également une surcharge. La date et l'heure "2011-07-12 07:18:47" peuvent être exprimées en temps Unix avec l' entier signé 32 bits , ne consommant que 4 octets . Représentée sous forme de chaîne codée UTF-8 au format ISO 8601, la date consommerait 19 octets, une surcharge de taille de 375 % par rapport à la représentation d'entier binaire. En tant que XML, cette date peut être écrite comme suit avec une surcharge de 218 caractères, tout en ajoutant le contexte sémantique qu'il s'agit d'un CHANGEDATE avec l'index 1. 1310447927 2011-07-12 07:18:47

<?xml version="1.0" encoding="UTF-8"?>
<DATETIME qualifier="CHANGEDATE" index="1">
  <YEAR>2011</YEAR>
  <MONTH>07</MONTH>
  <DAY>12</DAY>
  <HOUR>07</HOUR>
  <MINUTE>18</MINUTE>
  <SECOND>47</SECOND>
</DATETIME>

Les 349 octets, résultant du XML codé en UTF-8, correspondent à une surcharge de taille de 8625% par rapport à la représentation entière d'origine.

Voir également

Les références