commande top calcul de l'utilisation du processeur
-
23-08-2019 - |
Question
Je suis en train d'utiliser GNU coreutil la formule de calcul haut pour usages CPU en pourcentage. Mais le dessus utilise une half_total, pour calculer le pourcentage, ce qui ajoute 0,5 au pourcentage.
Dans utils.c de haut de source , la ligne suivante (à 3,8 beta1, il est dans le numéro de ligne: 459): -
* out ++ = (int) ((* diffs ++ * 1000 + half_total) / total_change);
Cela se traduit par: ((* Diffs ++ * 1000) / total_change) + 1/2 Ainsi, il donne toujours un certain nombre, qui est: « 10 fois le pourcentage, plus 0,5 ». Donc, si le pourcentage est x, il retournera 10x + 0,5.
Quelqu'un peut-il expliquer comment cette moyenne calculée? ou au moins un certain pointeur où je peux obtenir de l'aide?
PS:
Pourquoi ne pouvons-nous utiliser juste (*diffs++/total_change) * 100
pour obtenir le pourcentage requis?
code source Top est situé à: - http://downloads.sourceforge.net/unixtop /top-3.8beta1.tar.gz?modtime=1210117842&big_mirror=0
La solution
Ceci est la façon de le faire arrondi pour les valeurs entières, parce que la division rejette la partie décimale.
Lorsque vous ajoutez la moitié du diviseur, cela équivaut à une division à virgule flottante et arrondi vers le haut si la partie décimale est de 0,5 ou plus.