Der Kommentar von DavidPostill ist richtig: Sie stehen für U ser und S ystem. Um das zu beweisen, schauen wir uns den Code an .
Wir finden den String "CPU Utilization" iniperf_locale.c
. Diese Datei scheint alle sprachspezifischen Zeichenfolgen zu haben, und die Variable für die Zeile, in der die CPU-Auslastung angegeben ist, wird aufgerufen report_cpu
.
const char report_cpu[] = "CPU Utilization: %s/%s %.1f%% (%.1f%%u/%.1f%%s), %s/%s %.1f%% (%.1f%%u/%.1f%%s)\n";
Wir finden diese Variable iniperf_api.c
. Die dort verwendete Funktion scheint mehr oder weniger ähnlich zu sein printf
. Sie nimmt eine Formatzeichenfolge (unsere report_cpu
) und ersetzt alle Platzhalter darin durch eine für Menschen lesbare Version der angegebenen Variablen.
iperf_printf(test, report_cpu, report_local, test->sender?report_sender:report_receiver, test->cpu_util[0], test->cpu_util[1], test->cpu_util[2], report_remote, test->sender?report_receiver:report_sender, test->remote_cpu_util[0], test->remote_cpu_util[1], test->remote_cpu_util[2]);
Die vierten und fünften Platzhalter, die %.1f
s in den Klammern, sind das, was wir untersuchen. Es sieht so aus, als ob die ersten beiden Parameter der Funktion eine Art Kontext bzw. die Vorlagenzeichenfolge sind. Wir werden also mit dem Zählen beginnen report_local
. Der vierte ist test->cpu_util[1]
. Einige Grab zeigt, dass diese dreiwertigen cpu_util
Arrays erzeugt werden, iniperf_util.c
. Der interessante Teil ist am Ende der cpu_util
Funktion:
pcpu[0] = (((ctemp - clast) * 1000000.0 / CLOCKS_PER_SEC) / timediff) * 100; pcpu[1] = (userdiff / timediff) * 100; pcpu[2] = (systemdiff / timediff) * 100;
Steckplätze 1 und 2 basieren in der Tat auf der Benutzerzeit bzw. der Systemzeit, während Steckplatz 0 die Gesamtnutzung darstellt.