Files
swift-composable-architectu…/Sources/swift-composable-architecture-benchmark/Effects.swift
Thomas Grapperon 41f1cb9f3f Add a EffectTask<Action> typealias for Effect<Action, Never> and rename Effect to EffectPublisher (#1471)
* Add an `EffectOf<Action>` typealias for `Effect<Action, Never>`

* Fix doc

* Rename `EffectOf` to `EffectTask`

* Rename `Effect` to  `EffectPublisher`

* Soft-deprecate `Effect`

* Link to `EffectTask`

* Use `EffectPublisher` in Combine contexts

* Reword soft-deprecation message

* Remove `renamed:` fix-it for `Effect` deprecation

* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/ReducerProtocol.md

Co-authored-by: Stephen Celis <stephen.celis@gmail.com>

* Update Sources/ComposableArchitecture/Documentation.docc/ComposableArchitecture.md

* Update Sources/ComposableArchitecture/Effect.swift

* Fix DocC identifiers

Co-authored-by: Stephen Celis <stephen.celis@gmail.com>
2022-10-17 15:16:46 -07:00

29 lines
776 B
Swift

import Benchmark
import Combine
import ComposableArchitecture
import Foundation
let effectSuite = BenchmarkSuite(name: "Effects") {
$0.benchmark("Merged Effect.none (create, flat)") {
doNotOptimizeAway(EffectTask<Int>.merge((1...100).map { _ in .none }))
}
$0.benchmark("Merged Effect.none (create, nested)") {
var effect = EffectTask<Int>.none
for _ in 1...100 {
effect = effect.merge(with: .none)
}
doNotOptimizeAway(effect)
}
let effect = EffectTask<Int>.merge((1...100).map { _ in .none })
var didComplete = false
$0.benchmark("Merged Effect.none (sink)") {
doNotOptimizeAway(
effect.sink(receiveCompletion: { _ in didComplete = true }, receiveValue: { _ in })
)
} tearDown: {
precondition(didComplete)
}
}