Measure-Command
Mengukur waktu yang diperlukan untuk menjalankan blok skrip dan cmdlet.
Sintaks
Default (Default)
Measure-Command
[-InputObject <PSObject>]
[-Expression] <ScriptBlock>
[<CommonParameters>]
Deskripsi
cmdlet Measure-Command menjalankan blok skrip atau cmdlet secara internal, kali eksekusi operasi, dan mengembalikan waktu eksekusi.
Nota
Blok skrip dijalankan dengan Measure-Command berjalan dalam cakupan saat ini, bukan cakupan anak.
Contoh
Contoh 1: Mengukur perintah
Contoh ini mengukur waktu yang diperlukan untuk menjalankan perintah Get-EventLog 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 Get-ChildItem rekursif yang menggunakan parameter Jalur untuk hanya mendapatkan file .txt di direktori C:\Windows dan subdirektorinya.
Perintah kedua mengukur waktu yang diperlukan untuk memproses perintah Get-ChildItem rekursif 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 ke Measure-Command tersedia 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 dalam Measure-Command Anda dapat menggunakan pipa untuk 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 memodifikasi 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 kurung kurawal ({}).
Properti parameter
| Jenis: | ScriptBlock |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
PSObject
Anda dapat menyalurkan objek ke cmdlet ini.
Output
TimeSpan
Cmdlet ini mengembalikan objek rentang waktu yang mewakili hasilnya.