Exercise 3: Start-Job vs. ForEach-Object -Parallel for 200 Small Items — Possible Solution ==================================================================== THE RECOMMENDATION ------------------------------ ForEach-Object -Parallel is the right choice for 200 small, independent items on PowerShell 7. JUSTIFICATION USING THIS CHAPTER'S OWN COMPARISON ------------------------------ Per this chapter's own comparison table and "cost of a job" explanation, Start-Job launches a genuinely separate powershell.exe process for every single job - 200 items would mean starting 200 separate full processes, incurring real, measurable process-startup overhead 200 times over, which this chapter specifically calls "a poor fit for run this tiny operation many times, fast." ForEach-Object -Parallel instead runs each iteration in a lightweight runspace rather than a full process - much cheaper to create - which per this chapter's own comparison table is exactly why -Parallel "scales to hundreds of small items far better than an equivalent pile of Start-Job calls." Since the scenario given (200 small, independent items, wanting maximum speed) matches this chapter's own stated typical use case for -Parallel ("many short, similar parallel iterations") rather than Start-Job's own typical use case (a handful of independent, possibly long-running tasks), -Parallel is the better-suited tool here. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly recommends ForEach-Object -Parallel, and justifies the choice by directly citing this chapter's own stated overhead difference (full process per job vs. lightweight runspace per iteration) and its own stated typical-use guidance for each tool, rather than just asserting a preference.