Comments (3)
Ahh, cool idea!
Looking at verbose output, the actual runtime is ~ .08 seconds for each. It looks like the hangup is when we call begininvoke():
$temp.Runspace = $powershell.BeginInvoke()
If I step through manually, I can reproduce this.
#Set things up
$Throttle = 20
$ScriptBlock = $ExecutionContext.InvokeCommand.NewScriptBlock("param(`$_, `$parameter)`r`n" + {$_.invoke()}.ToString())
$object = {start-sleep -Seconds 10; "boo!"}
$sessionstate = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault()
$runspacepool = [runspacefactory]::CreateRunspacePool(1, $Throttle, $sessionstate, $Host)
$runspacepool.Open()
$powershell = [powershell]::Create()
[void]$PowerShell.AddScript($ScriptBlock).AddArgument($object).AddArgument($parameter)
$powershell.RunspacePool = $runspacepool
#I get a delay here...
$rs = $powershell.BeginInvoke()
from invoke-parallel.
This is a bit out of my wheelhouse, but this might help identify the root cause:
Measure-command { @({sleep 5; 1}, {sleep 5; 2}, {sleep 5; 3}) | Invoke-Parallel { [scriptblock]::Create( $_ ).invoke() } }
Returns in expected ~ 5 seconds.
Measure-command { @({sleep 5; 1}, {sleep 5; 2}, {sleep 5; 3}) | Invoke-Parallel { $x = $_.psobject.copy(); $x.invoke() } }
Returns in unexpected ~ 15 seconds.
from invoke-parallel.
@lzybkr comment:
If you call [ScriptBlock]::Create - the script block doesn't know it's runspace.
If you use { } - then it does, and will always run on that runspace.
from invoke-parallel.
Related Issues (20)
- NullReferenceException HOT 1
- Physical Memory usage HOT 2
- Log file locks if multiple scripts invoke-parallel HOT 4
- Get-RunspaceData error: Collection was modified; enumeration operation may not execute HOT 1
- it is not working to get AD group member using Get-ADGroupMember HOT 1
- Get-RunspaceData : ERROR: Deployment failed HOT 2
- Invoke-Parallel: When launched within a function, does not carry param()-variables forward
- Invoke-Parallel Scriptblock [Enviornment]::GetEnvironmentVariable
- Using a shared & synchronized variable to hold a counter HOT 2
- How we can use Invoke-Parallel to fetch ADUser data? HOT 4
- Import-Modules in parallel when session profile loaded? HOT 1
- Issue with Get-WMIObject HOT 1
- Weird error running Invoke-Parallel
- Variable Creep HOT 3
- Adding item to external collection HOT 2
- Error A null key is not allowed in a hash literal HOT 1
- skips
- Invoke-Parallel skips processing some objects when throttle > 1 HOT 2
- Fast-Ping Sweep (recommendations or tricks) HOT 2
- $PWD inside the script block doesn't update after changing the current directory
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from invoke-parallel.