mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 23:38:50 +03:00
benchmark: benchmark ImmediateFuture::thenValue exception case
Summary: This case shows up when profiling Buck builds, let's add a benchmark to measure the improvements made to it. Reviewed By: fanzeyi Differential Revision: D31655224 fbshipit-source-id: 8a4248160bafe5e56829bb896866e8ad7b97ba79
This commit is contained in:
parent
bf80d78e16
commit
fe1a6e2754
@ -22,6 +22,19 @@ void immediate_future(benchmark::State& state) {
|
||||
state.SetItemsProcessed(std::move(fut).get());
|
||||
}
|
||||
|
||||
void immediate_future_exc(benchmark::State& state) {
|
||||
ImmediateFuture<uint64_t> fut{folly::Try<uint64_t>{std::logic_error("Foo")}};
|
||||
|
||||
uint64_t processed = 0;
|
||||
for (auto _ : state) {
|
||||
auto newFut = std::move(fut).thenValue([](uint64_t v) { return v + 1; });
|
||||
fut = std::move(newFut);
|
||||
processed++;
|
||||
}
|
||||
benchmark::DoNotOptimize(fut);
|
||||
state.SetItemsProcessed(processed);
|
||||
}
|
||||
|
||||
void folly_future(benchmark::State& state) {
|
||||
folly::Future<int> fut{0};
|
||||
for (auto _ : state) {
|
||||
@ -32,6 +45,7 @@ void folly_future(benchmark::State& state) {
|
||||
}
|
||||
|
||||
BENCHMARK(immediate_future);
|
||||
BENCHMARK(immediate_future_exc);
|
||||
BENCHMARK(folly_future);
|
||||
} // namespace
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user