Ich versuche, die Formel von GNU coreutil top zur Berechnung der CPU-Auslastung in Prozent zu verwenden. Aber oben verwendet einige half_total, um den Prozentsatz zu berechnen, der 0,5 zum Prozentsatz hinzufügt.Berechnung der CPU-Auslastung des oberen Befehls
In utils.c von Top source, die folgende Zeile (3.8 Beta1 ist es in Zeilennummer: 459): -
* out ++ = (int) ((* diffs ++ * 1000 + half_total)/total_change);
Dies führt zu: ((* diffs ++ * 1000)/total_change) + 1/2 So gibt es immer eine Zahl, die lautet: "10-mal der Prozentsatz, plus 0,5". Wenn der Prozentsatz also x ist, wird 10x + 0,5 zurückgegeben.
Kann jemand erklären, wie wird dieser Durchschnitt berechnet? oder wenigstens ein Zeiger, wo ich die Hilfe bekommen kann?
PS: Warum können wir nicht einfach (*diffs++/total_change) * 100
verwenden, um den erforderlichen Prozentsatz zu erhalten?
Top-Quellcode befindet sich unter: - http://downloads.sourceforge.net/unixtop/top-3.8beta1.tar.gz?modtime=1210117842&big_mirror=0
aber was ist mit dem "10x" Teil? – Sabya
Da der Wert in Zehntel Prozent ist. – starblue