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
Anda dapat menyalurkan objek ke cmdlet ini.
Output
Cmdlet ini mengembalikan objek rentang waktu yang mewakili hasilnya.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk