Measure-Command

Applies To: Windows PowerShell 2.0

Measures the time it takes to run script blocks and cmdlets.

Syntax

Measure-Command [-Expression] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]

Description

The Measure-Command cmdlet runs a script block or cmdlet internally, times the execution of the operation, and returns the execution time.

Parameters

-Expression <scriptblock>

Specifies the expression that is being timed. Enclose the expression in braces ({}). The parameter name ("Expression") is optional.

Required?

true

Position?

1

Default Value

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-InputObject <psobject>

Specifies objects representing the expressions to be measured. Enter a variable that contains the objects or type a command or expression that gets the objects.

Required?

false

Position?

named

Default Value

Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?

false

<CommonParameters>

This command supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, OutBuffer, OutVariable, WarningAction, and WarningVariable. For more information, see about_CommonParameters.

Inputs and Outputs

The input type is the type of the objects that you can pipe to the cmdlet. The return type is the type of the objects that the cmdlet returns.

Inputs

System.Management.Automation.PSObject

You can pipe an object to Measure-Command.

Outputs

System.TimeSpan

Measure-Command returns a time span object that represents the result.

Notes

For more information, type "Get-Help Measure-Command -detailed". For technical information, type "Get-Help Measure-Command -full".

When specifying multiple values for a parameter, use commas to separate the values. For example, "<parameter-name> <value1>, <value2>".

Example 1

C:\PS>Measure-Command { get-eventlog "windows powershell" }

Description
-----------
This command measures the time it takes to run a "get-eventlog" command that gets the events in the Windows PowerShell event log.





Example 2

C:\PS>measure-command {get-childitem c:\windows -include *.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

C:\PS>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

Description
-----------
These commands show the value of using a provider-specific filter in Windows PowerShell commands. The first command measures the time it takes to process a recursive Get-ChildItem command that uses the Include parameter. The second command measures the time it takes to process a recursive Get-ChildItem command that uses the provider-specific Filter parameter.





See Also

Concepts

Trace-Command
Invoke-Command