Entspricht der Unix-Zeitbefehl in PowerShell?

8

Früher las ich ein großes Antwort auf SO und ich fragte mich, warum es in PowerShell noch nicht emuliert wurde.

Unter UNIX / Linux können wir den Befehl time als einfaches Benchmark-Tool verwenden.

%Vor%

In der Powershell können wir das measure-command ähnlich verwenden:

%Vor%

Aber das ist nicht das gleiche wie das time , das reell, user und sys anzeigt (Siehe den Unterschied zwischen den dreien in der verknüpften SO-Antwort.)

Dies ( time ) ist offensichtlich ein so nützliches kleines Werkzeug. Gibt es benutzerdefinierte Cmdlets für diese Funktionalität oder ist es bereits in V3 oder für zukünftige Versionen geplant?

    
Animesh 11.11.2011, 06:40
quelle

4 Antworten

2

Schreiben Sie ein C-Programm mit der GetProcessTimes-Funktion. Sie finden die Dokumentation in: Ссылка .

In den Beispielen des Buches "Windows System Programming" kommt ein Programm, das diese Funktion verwendet, um genau das zu erhalten, was Sie benötigen (Elapsed, Kernel, User Times). Das Programm heißt "timep.exe" und befindet sich in den runX-Unterverzeichnissen (das X stammt von der Version von Visual Studio, die in der Kompilierung verwendet wird) innerhalb des gezippten Beispielarchivs. Hier ist die Autorenseite, von der Sie dieses Archiv herunterladen können Ссылка , natürlich ist der Quellcode auch da, so dass Sie genau sehen konnten, wie timep .exe funktioniert.

    
mjsr 12.11.2011 12:51
quelle
1

Ich habe beide Zeiten verwendet, die von System.Diagnostics.Process und GetProcessTimes bereitgestellt wurden, um eine Implementierung für time zu erstellen:

%Vor%

Es ist nicht wirklich perfekt, da die tatsächliche Zeit ungefähr 11 Sekunden beträgt (für sleep 10 ), da ich einen Powershell-Prozess erstelle und den Befehl darin ausführe. Ich werde sehen, ob ich ein Cmdlet oder etwas dafür implementieren kann.

    
manojlds 13.11.2011 00:12
quelle
1

Warnung, PowerShell voraus.

Ein Kaffee half mir dabei:

%Vor%

Und wenn Sie wollen, dass nichts ausgegeben wird, ersetzen Sie einfach mit out-null:

%Vor%

Du benutzt es so:

%Vor%     
Andrei Ghimus 29.01.2018 11:17
quelle
0

Der Prozess, den Sie zu messen versuchen, kann sich auch im Hintergrund verzweigen und ausgeführt werden, wodurch die Messung Measure-Command unterbrochen wird. Sie können Start-Prozess mit dem Parameter -Wait verwenden, um die erwartete Vollzeitmessung zu erhalten. Hier ist ein Beispiel, das zeigt, dass stackoverflow.com 34 Sekunden benötigt, um eine inaktive Verbindung zu schließen:

%Vor%     
Greg Bray 30.12.2015 23:29
quelle

Tags und Links