2012-03-24 2 views
0

Das ist wahrscheinlich die dümmste Frage, aber ich kann online nichts darüber finden, und ich bin teilweise am Rande des Einschlafens.Wie berechne ich die Wartezeit in Unix? (Basierend auf/usr/bin/time)

Wie auch immer, ich nehme an, dass es etwas mit der gesamten verstrichenen/Wandzeit zu tun hat, und sowohl die Benutzer- als auch die Systemzeit subtrahiert. IE, Wandzeit beträgt 10 Sekunden, Systemzeit ist 2 und Benutzer ist 1, was bedeutet, dass die Wartezeit 7 Sekunden beträgt.

Ich würde gerne eine sichere Antwort bekommen, statt mit diesem zu verwenden, das auf meinem Bauch basiert.

+0

Die CPU-Zeit kann größer sein als die verstrichene Zeit, wenn mehr als eine CPU den Code ausführt. Zum Beispiel geben zwei Prozessoren, die 100% für eine Sekunde arbeiten, 1 Sekunde verstrichene 2 Sekunden Benutzer-CPU. –

+0

Die Instanzen, mit denen ich arbeite, geben etwas anderes an. Wenn das der Fall ist, gibt es dann keine allgemeine Formel? Mir wurde gesagt, dass ich die Wartezeit mit der Wandzeit berechnen kann. –

Antwort

0

Die Formel scheint exactly as you surmised, zu sein, mit der obigen Einschränkung.

Seit /usr/bin/time misst seine Benutzer- und Systemprozesszeit in CPU-seconds (nach the documentation), werden Sie ergreifen müssen, um die Anzahl der CPUs können Sie den Code in Rechnung auszuführen. Für die meisten einfachen Singlethread-Anwendungen ist die Verwendung einer CPU als Schätzung sinnvoll. * In diesen Fällen können Sie die CPU-Zeit als Ersatz für die Wanduhrzeit in vertretbarem Maße verwenden.

Für andere hängt es von der maximalen CPU-Sättigung ab, die das Programm erwartet, und das liegt außerhalb des Bereichs dessen, was Ihnen time sagen kann.


  * Bestimmte Prozessor-Level-Idiosynkrasien mit verbesserter Parallelität und spekulativen Verzweigungsausführungs machen dies technisch ungenau, aber ansonsten ist es eine vernünftige Schätzung.

+0

Danke für den Link und die ausführliche Erklärung! –

+0

@ LOL.NO. Froh, dass ich Helfen kann. :) – MrGomez

Verwandte Themen