Bagikan melalui


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.