Statistik: CPU-Zeit vs. verstrichene Zeit. Was ist wichtiger?


9

Was ist bei der Leistungsoptimierung wichtiger:

  • CPU-Zeit oder verstrichene Zeit?
  • Gibt es Szenarien, in denen eines wichtiger ist als das andere?

Ein Beispiel: Während der Leistungsoptimierung wird die CPU-Zeit um ~ 38% reduziert , die verstrichene Zeit jedoch um ~ 22%. Ist das eine Verbesserung ?


5
Wichtig für wen? Ihre Anforderungen können von meinen abweichen. Für die meisten meiner Kunden ist die verstrichene Zeit (Wartezeit der Benutzer) weitaus wichtiger als die CPU-Zeit. Nein, das wäre keine Verbesserung. Ihre CPUs arbeiten weniger, aber höchstwahrscheinlich werden weniger knappe Ressourcen zum Ausgleich verwendet (normalerweise E / A). Möglicherweise haben Sie IT-Bean-Counter-Typen, die die CPU-Zeit über die verstrichene Zeit bewerten, da sie auf Warnungen zu CPU-Spitzen oder was Sie haben eingestellt sind. Sie haben andere Anforderungen als Ihre Endbenutzer, aber Sie müssen möglicherweise beide erfüllen. Ich glaube nicht, dass es eine einfache Antwort gibt.
— Aaron Bertrand

Wenn die Abfrage sehr oft ausgeführt wird, kann die reduzierte CPU zu einer insgesamt reduzierten Zeit führen?
— EnterTheCode

Mit dem Beispiel, das Sie gegeben haben, unwahrscheinlich.
— Aaron Bertrand

Antworten:


14

Die CPU-Zeit ist die vom Prozess benötigte Prozessorzeit. Dies zeigt keine Dauer an . "Verstrichene Zeit" repräsentiert die Gesamtdauer der Aufgabe. Wenn eine bestimmte Aufgabe eine Parallelität von 8 (dh 8 Threads) verwendet und jeder Thread über die gesamte Dauer der Aufgabe mit einer Rate von 100% verwendet wird, kann die CPU-Zeit 8000 ms betragen, während die verstrichene Zeit nur 1000 ms beträgt.

Daher zeigt eine kürzere "verstrichene Zeit" eine schnellere Antwortzeit an.

Möglicherweise möchten Sie eine kürzere CPU-Zeit und eine längere verstrichene Zeit, wenn Sie sich Gedanken über den CPU-Druck machen und sich nicht um die Benutzererfahrung kümmern.

Sie können eine längere CPU-Zeit akzeptieren, wenn dies zu einem Rückgang der verstrichenen Zeit führt, da dies möglicherweise darauf hinweist, dass der Benutzer auf Kosten einer höheren CPU-Auslastung weniger wartet.

Die wahrscheinlich wichtigere Metrik für die Abfrageoptimierung wären Wartezeiten .


4

... während die Leistungsoptimierung die CPU-Zeit um ~ 38% verringert, die verstrichene Zeit jedoch um ~ 22% erhöht. Ist das eine Verbesserung?

Dies hängt ganz davon ab, wofür Sie optimieren und warum. Im allgemeinsten Sinne - Geschwindigkeit der Abfrageausgabe - ist dies keine Verbesserung, wie Max Vernon in seiner Antwort feststellte.

Allerdings , wenn Ihr System CPU-gebunden ist , dann dies wäre eine Verbesserung, wie Sie die CPU - Last verringert. Wenn dies der Fall wäre, könnte das Endergebnis auch eine schnellere Rückgabe der Ergebnismenge bedeuten.

Und wenn Ihr System festplatten- oder speichergebunden wäre, wäre dies ein neutrales Ergebnis, da es keinen Hinweis darauf gibt, dass es diese Maßnahmen entweder verbessert oder verschlechtert hat.

In 95% der Fälle ist Max absolut korrekt - dies ist keine Verbesserung. In den verbleibenden wenigen Fällen kann es sich um eine Verbesserung handeln.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.