Measure-Command

Mengukur waktu yang diperlukan untuk menjalankan blok skrip dan cmdlet.

Sintaks

Measure-Command
       [-InputObject <PSObject>]
       [-Expression] <ScriptBlock>
       [<CommonParameters>]

Deskripsi

Measure-Command Cmdlet menjalankan blok skrip atau cmdlet secara internal, kali eksekusi operasi, dan mengembalikan waktu eksekusi.

Catatan

Blok skrip dijalankan dengan Measure-Command dijalankan dalam cakupan saat ini, bukan cakupan anak.

Contoh

Contoh 1: Mengukur perintah

Contoh ini mengukur waktu yang Get-EventLog diperlukan untuk menjalankan perintah yang mendapatkan peristiwa di log peristiwa Windows PowerShell.

Measure-Command { Get-EventLog "windows powershell" }

Contoh 2: Membandingkan dua output dari Measure-Command

Perintah pertama mengukur waktu yang diperlukan untuk memproses perintah rekursif Get-ChildItem yang menggunakan parameter Jalur untuk hanya .txt mendapatkan file di C:\Windows direktori dan subdirektorinya.

Perintah kedua mengukur waktu yang diperlukan untuk memproses perintah rekursif Get-ChildItem yang menggunakan parameter Filter khusus penyedia.

Perintah ini memperlihatkan nilai penggunaan filter khusus penyedia dalam perintah PowerShell.

Measure-Command { Get-ChildItem -Path C:\Windows\*.txt -Recurse }

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 8
Milliseconds      : 618
Ticks             : 86182763
TotalDays         : 9.9748568287037E-05
TotalHours        : 0.00239396563888889
TotalMinutes      : 0.143637938333333
TotalSeconds      : 8.6182763
TotalMilliseconds : 8618.2763

Measure-Command {Get-ChildItem C:\Windows -Filter "*.txt" -Recurse}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 140
Ticks             : 11409189
TotalDays         : 1.32050798611111E-05
TotalHours        : 0.000316921916666667
TotalMinutes      : 0.019015315
TotalSeconds      : 1.1409189
TotalMilliseconds : 1140.9189

Contoh 3: Input pipa ke Measure-Command

Objek yang disalurkan tersedia Measure-Command untuk blok skrip yang diteruskan ke parameter Ekspresi . Blok skrip dijalankan sekali untuk setiap objek pada alur.

# Perform a simple operation to demonstrate the InputObject parameter
# Note that no output is displayed.
10, 20, 50 | Measure-Command -Expression { for ($i=0; $i -lt $_; $i++) {$i} }

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 12
Ticks             : 122672
TotalDays         : 1.41981481481481E-07
TotalHours        : 3.40755555555556E-06
TotalMinutes      : 0.000204453333333333
TotalSeconds      : 0.0122672
TotalMilliseconds : 12.2672

Contoh 4: Menampilkan output perintah terukur

Untuk menampilkan output ekspresi di Measure-Command Anda dapat menggunakan pipa ke Out-Default.

# Perform the same operation as above adding Out-Default to every execution.
# This will show that the ScriptBlock is in fact executing for every item.
10, 20, 50 | Measure-Command -Expression {for ($i=0; $i -lt $_; $i++) {$i}; "$($_)" | Out-Default }

10
20
50


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 11
Ticks             : 113745
TotalDays         : 1.31649305555556E-07
TotalHours        : 3.15958333333333E-06
TotalMinutes      : 0.000189575
TotalSeconds      : 0.0113745
TotalMilliseconds : 11.3745

Contoh 5: Mengukur eksekusi dalam cakupan anak

Measure-Command menjalankan blok skrip dalam cakupan saat ini, sehingga blok skrip dapat mengubah nilai dalam cakupan saat ini. Untuk menghindari perubahan pada cakupan saat ini, Anda harus membungkus blok skrip dalam kurung kurawal ({}) dan menggunakan operator pemanggilan (&) untuk menjalankan blok dalam cakupan anak.

$foo = 'Value 1'
$null = Measure-Command { $foo = 'Value 2' }
$foo
$null = Measure-Command { & { $foo = 'Value 3' } }
$foo

Value 2
Value 2

Untuk informasi selengkapnya tentang operator pemanggilan, lihat about_Operators.

Parameter

-Expression

Menentukan ekspresi yang sedang ditentukan waktunya. Sertakan ekspresi dalam tanda kurung kurawal ({}).

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Objek yang terikat ke parameter InputObject adalah input opsional untuk blok skrip yang diteruskan ke parameter Ekspresi . Di dalam blok skrip, $_ dapat digunakan untuk mereferensikan objek saat ini dalam alur.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Input

PSObject

Anda dapat menyalurkan objek ke cmdlet ini.

Output

TimeSpan

Cmdlet ini mengembalikan objek rentang waktu yang mewakili hasilnya.