Skip to content

Commit

Permalink
Checkout concurrently (2.5x speedup)
Browse files Browse the repository at this point in the history
For a test project, before:

```
carthage checkout  11.63s user 5.81s system 97% cpu 17.848 total
```

after:

```
carthage checkout  13.68s user 6.97s system 270% cpu 7.618 total
```
  • Loading branch information
erichoracek committed May 2, 2017
1 parent 5173973 commit d9b1cd1
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions Source/CarthageKit/Project.swift
Original file line number Diff line number Diff line change
Expand Up @@ -808,7 +808,7 @@ public final class Project {
.zip(with: submodulesSignal)
.flatMap(.merge) { dependencies, submodulesByPath -> SignalProducer<(), CarthageError> in
return SignalProducer<Dependency<PinnedVersion>, CarthageError>(dependencies)
.flatMap(.concat) { dependency -> SignalProducer<(), CarthageError> in
.map { dependency -> SignalProducer<(), CarthageError> in
let project = dependency.project

switch project {
Expand All @@ -835,9 +835,9 @@ public final class Project {
case let .binary(url):
return self.installBinariesForBinaryProject(url: url, pinnedVersion: dependency.version, projectName: project.name, toolchain: buildOptions?.toolchain)
}


}
// Checkout as many project as possible in parallel.
.flatMap(.merge) { $0.start(on: QueueScheduler(name: "org.carthage.CarthageKit.checkout")) }
}
.then(SignalProducer<(), CarthageError>.empty)
}
Expand Down

0 comments on commit d9b1cd1

Please sign in to comment.