34 lines
941 B
Plaintext
34 lines
941 B
Plaintext
# Simulated fast function
|
|
function a ( [boolean]$J ) { return $J }
|
|
|
|
# Simulated slow function
|
|
function b ( [boolean]$J ) { Sleep -Seconds 2; return $J }
|
|
|
|
# These all short-circuit and do not evaluate the right hand function
|
|
( a $True ) -or ( b $False )
|
|
( a $True ) -or ( b $True )
|
|
( a $False ) -and ( b $False )
|
|
( a $False ) -and ( b $True )
|
|
|
|
# Measure of execution time
|
|
Measure-Command {
|
|
( a $True ) -or ( b $False )
|
|
( a $True ) -or ( b $True )
|
|
( a $False ) -and ( b $False )
|
|
( a $False ) -and ( b $True )
|
|
} | Select TotalMilliseconds
|
|
|
|
# These all appropriately do evaluate the right hand function
|
|
( a $False ) -or ( b $False )
|
|
( a $False ) -or ( b $True )
|
|
( a $True ) -and ( b $False )
|
|
( a $True ) -and ( b $True )
|
|
|
|
# Measure of execution time
|
|
Measure-Command {
|
|
( a $False ) -or ( b $False )
|
|
( a $False ) -or ( b $True )
|
|
( a $True ) -and ( b $False )
|
|
( a $True ) -and ( b $True )
|
|
} | Select TotalMilliseconds
|