193 votes

Qu'est-ce que les "frais généraux" ?

Je suis étudiant en informatique et j'entends souvent le mot "overhead" lorsqu'il est question de programmes et de tris. Qu'est-ce que cela signifie exactement ?

38 votes

Combien de "choses supplémentaires" vous devez faire pour obtenir quelque chose. Par exemple, si je dois charger un projet de 37 classes juste pour imprimer "Hello World", je considère que c'est beaucoup de frais généraux.

1 votes

@doug65536 En fait, c'est l'inverse. =)

246voto

corsiKa Points 39442

Il s'agit des ressources nécessaires à la mise en place d'une opération. Cela peut sembler sans rapport, mais c'est nécessaire.

C'est comme quand vous devez aller quelque part, vous pouvez avoir besoin d'une voiture. Mais cela représenterait beaucoup de frais généraux d'obtenir une voiture pour descendre la rue, alors vous pourriez vouloir marcher. Cependant, les frais généraux en vaudraient la peine si vous deviez traverser le pays.

En informatique, il arrive que nous utilisions des voitures pour descendre la rue parce que nous n'avons pas de meilleur moyen, ou que cela ne vaut pas la peine de prendre le temps d'"apprendre à marcher".

118 votes

Une analogie similaire serait l'avion. Les avions sont beaucoup plus rapides que les voitures, mais les frais généraux liés à l'enregistrement dans les aéroports, à la sécurité, etc. font de la voiture une meilleure option pour les courtes distances.

0 votes

S/drive/go/ (Si vous avez besoin de lecteur quelque part où vous ne décidez pas habituellement de marcher...

1 votes

@inf3rno L'ironie ? Comment on va à notre voiture ? On marche. Et nous pouvons tout à fait marcher... jusqu'à notre voiture. Nous ne pouvons pas marcher jusqu'à notre destination, même si elle est plus proche que notre voiture.

51voto

Michael Borgwardt Points 181658

La signification du mot peut varier beaucoup selon le contexte. En général, ce sont des ressources (le plus souvent de la mémoire et du temps CPU) qui sont utilisées, qui ne contribuent pas directement au résultat escompté, mais qui sont requises par la technologie ou la méthode utilisée. Exemples :

  • Surcharge du protocole : Les trames Ethernet, les paquets IP et les segments TCP ont tous des en-têtes, les connexions TCP nécessitent des paquets de poignée de main. Ainsi, vous ne pouvez pas utiliser la totalité de la bande passante dont le matériel est capable pour vos données réelles. Vous pouvez réduire la surcharge en utilisant des paquets de plus grande taille et UDP a un en-tête plus petit et pas de poignée de main.
  • Surcharge de la mémoire de la structure de données : Une liste chaînée nécessite au moins un pointeur pour chaque élément qu'elle contient. Si les éléments ont la même taille qu'un pointeur, cela signifie une surcharge mémoire de 50%, alors qu'un tableau peut potentiellement avoir une surcharge de 0%.
  • Frais généraux des appels de méthode : Un programme bien conçu est décomposé en de nombreuses méthodes courtes. Mais chaque appel de méthode nécessite la mise en place d'un cadre de pile, la copie de paramètres et une adresse de retour. Cela représente une surcharge du processeur par rapport à un programme qui fait tout dans une seule fonction monolithique. Bien sûr, la facilité de maintenance accrue en vaut la peine, mais dans certains cas, les appels de méthode excessifs peuvent avoir un impact significatif sur les performances.

0 votes

On dirait que le mot a le même sens dans tous ces exemples (nécessaire pour exécuter la tâche, mais pas toujours lié à l'exécution directe de celle-ci)

0 votes

Re structure de données de la mémoire overhead : Avec la plupart des allocateurs de mémoire, c'est encore pire que ça. Chaque valeur retournée par malloc a une surcharge intégrée de 8 octets due à l'allocateur (en supposant une machine 32 bits classique) constitué de la taille du bloc plus les valeurs de garde. Et ce, avant même de penser à la granularité de l'allocation. Une liste simple d'entiers de 4 octets aura donc une surcharge de 75% ; les tableaux sont bien meilleurs (sauf si vous avez besoin d'une insertion rapide au milieu) parce qu'ils peuvent avoir la surcharge une fois (ou moins, si le tableau n'est pas alloué dynamiquement).

27voto

Ram Bhat Points 1337

Vous êtes fatigué et ne pouvez plus travailler. Vous mangez de la nourriture. L'énergie dépensée à chercher de la nourriture, à l'obtenir et à la manger consomme de l'énergie et constitue des frais généraux !

Les frais généraux sont des dépenses inutiles pour accomplir une tâche. L'objectif est de rendre les frais généraux très très faibles.

En informatique, disons que vous voulez imprimer un nombre, c'est votre tâche. Mais le stockage du nombre, la configuration de l'affichage pour l'imprimer et l'appel de routines pour l'imprimer, puis l'accès au nombre à partir d'une variable sont tous des frais généraux.

16voto

Matthew Jones Points 13864

Wikipedia nous a couverts :

En informatique, Transparent est généralement considéré comme une combinaison de temps de calcul excessif ou indirect de calcul, de mémoire, de bande passante, ou d'autres ressources qui sont nécessaires pour atteindre un objectif particulier. Il s'agit d'un cas particulier cas particulier de frais généraux d'ingénierie.

4 votes

Mais si ce n'était pas le cas, vous corrigeriez WikiPedia, puis vous feriez le même post ici.

13voto

Justin Niessner Points 144953

L'overhead désigne généralement la quantité de ressources supplémentaires (mémoire, processeur, temps, etc.) que prennent les différents algorithmes de programmation.

Par exemple, la surcharge liée à l'insertion dans un arbre binaire équilibré peut être beaucoup plus importante que celle liée à l'insertion dans une simple liste chaînée (l'insertion prendra plus de temps et nécessitera plus de puissance de traitement pour équilibrer l'arbre, ce qui se traduira par une durée d'opération perçue plus longue par l'utilisateur).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X