diff options
author | Yash Tibrewal <yashkt@google.com> | 2017-10-13 16:07:13 -0700 |
---|---|---|
committer | Yash Tibrewal <yashkt@google.com> | 2017-10-18 17:12:19 -0700 |
commit | 0ee7574732a06e8cace4e099a678f4bd5dbff679 (patch) | |
tree | e43d5de442fdcc3d39cd5af687f319fa39612d3f /test/cpp/microbenchmarks/bm_metadata.cc | |
parent | 6bf5f833efe2cb9e2ecc14358dd9699cd5d05263 (diff) |
Removing instances of exec_ctx being passed around in functions in
src/core. exec_ctx is now a thread_local pointer of type ExecCtx instead of
grpc_exec_ctx which is initialized whenever ExecCtx is instantiated. ExecCtx
also keeps track of the previous exec_ctx so that nesting of exec_ctx is
allowed. This means that there is only one exec_ctx being used at any
time. Also, grpc_exec_ctx_finish is called in the destructor of the
object, and the previous exec_ctx is restored to avoid breaking current
functionality. The code still explicitly calls grpc_exec_ctx_finish
because removing all such instances causes the code to break.
Diffstat (limited to 'test/cpp/microbenchmarks/bm_metadata.cc')
-rw-r--r-- | test/cpp/microbenchmarks/bm_metadata.cc | 119 |
1 files changed, 55 insertions, 64 deletions
diff --git a/test/cpp/microbenchmarks/bm_metadata.cc b/test/cpp/microbenchmarks/bm_metadata.cc index 360bbabe13..62a88f55b5 100644 --- a/test/cpp/microbenchmarks/bm_metadata.cc +++ b/test/cpp/microbenchmarks/bm_metadata.cc @@ -92,11 +92,11 @@ static void BM_MetadataFromNonInternedSlices(benchmark::State& state) { TrackCounters track_counters; gpr_slice k = grpc_slice_from_static_string("key"); gpr_slice v = grpc_slice_from_static_string("value"); - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, grpc_mdelem_create(&exec_ctx, k, v, NULL)); + GRPC_MDELEM_UNREF(grpc_mdelem_create(k, v, NULL)); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); track_counters.Finish(state); } BENCHMARK(BM_MetadataFromNonInternedSlices); @@ -105,11 +105,11 @@ static void BM_MetadataFromInternedSlices(benchmark::State& state) { TrackCounters track_counters; gpr_slice k = grpc_slice_intern(grpc_slice_from_static_string("key")); gpr_slice v = grpc_slice_intern(grpc_slice_from_static_string("value")); - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, grpc_mdelem_create(&exec_ctx, k, v, NULL)); + GRPC_MDELEM_UNREF(grpc_mdelem_create(k, v, NULL)); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); grpc_slice_unref(k); grpc_slice_unref(v); track_counters.Finish(state); @@ -121,13 +121,13 @@ static void BM_MetadataFromInternedSlicesAlreadyInIndex( TrackCounters track_counters; gpr_slice k = grpc_slice_intern(grpc_slice_from_static_string("key")); gpr_slice v = grpc_slice_intern(grpc_slice_from_static_string("value")); - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - grpc_mdelem seed = grpc_mdelem_create(&exec_ctx, k, v, NULL); + ExecCtx _local_exec_ctx; + grpc_mdelem seed = grpc_mdelem_create(k, v, NULL); while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, grpc_mdelem_create(&exec_ctx, k, v, NULL)); + GRPC_MDELEM_UNREF(grpc_mdelem_create(k, v, NULL)); } - GRPC_MDELEM_UNREF(&exec_ctx, seed); - grpc_exec_ctx_finish(&exec_ctx); + GRPC_MDELEM_UNREF(seed); + grpc_exec_ctx_finish(); grpc_slice_unref(k); grpc_slice_unref(v); track_counters.Finish(state); @@ -138,11 +138,11 @@ static void BM_MetadataFromInternedKey(benchmark::State& state) { TrackCounters track_counters; gpr_slice k = grpc_slice_intern(grpc_slice_from_static_string("key")); gpr_slice v = grpc_slice_from_static_string("value"); - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, grpc_mdelem_create(&exec_ctx, k, v, NULL)); + GRPC_MDELEM_UNREF(grpc_mdelem_create(k, v, NULL)); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); grpc_slice_unref(k); track_counters.Finish(state); } @@ -154,14 +154,12 @@ static void BM_MetadataFromNonInternedSlicesWithBackingStore( gpr_slice k = grpc_slice_from_static_string("key"); gpr_slice v = grpc_slice_from_static_string("value"); char backing_store[sizeof(grpc_mdelem_data)]; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF( - &exec_ctx, - grpc_mdelem_create(&exec_ctx, k, v, - reinterpret_cast<grpc_mdelem_data*>(backing_store))); + GRPC_MDELEM_UNREF(grpc_mdelem_create( + k, v, reinterpret_cast<grpc_mdelem_data*>(backing_store))); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); track_counters.Finish(state); } BENCHMARK(BM_MetadataFromNonInternedSlicesWithBackingStore); @@ -172,14 +170,12 @@ static void BM_MetadataFromInternedSlicesWithBackingStore( gpr_slice k = grpc_slice_intern(grpc_slice_from_static_string("key")); gpr_slice v = grpc_slice_intern(grpc_slice_from_static_string("value")); char backing_store[sizeof(grpc_mdelem_data)]; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF( - &exec_ctx, - grpc_mdelem_create(&exec_ctx, k, v, - reinterpret_cast<grpc_mdelem_data*>(backing_store))); + GRPC_MDELEM_UNREF(grpc_mdelem_create( + k, v, reinterpret_cast<grpc_mdelem_data*>(backing_store))); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); grpc_slice_unref(k); grpc_slice_unref(v); track_counters.Finish(state); @@ -192,14 +188,12 @@ static void BM_MetadataFromInternedKeyWithBackingStore( gpr_slice k = grpc_slice_intern(grpc_slice_from_static_string("key")); gpr_slice v = grpc_slice_from_static_string("value"); char backing_store[sizeof(grpc_mdelem_data)]; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF( - &exec_ctx, - grpc_mdelem_create(&exec_ctx, k, v, - reinterpret_cast<grpc_mdelem_data*>(backing_store))); + GRPC_MDELEM_UNREF(grpc_mdelem_create( + k, v, reinterpret_cast<grpc_mdelem_data*>(backing_store))); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); grpc_slice_unref(k); track_counters.Finish(state); } @@ -209,11 +203,11 @@ static void BM_MetadataFromStaticMetadataStrings(benchmark::State& state) { TrackCounters track_counters; gpr_slice k = GRPC_MDSTR_STATUS; gpr_slice v = GRPC_MDSTR_200; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, grpc_mdelem_create(&exec_ctx, k, v, NULL)); + GRPC_MDELEM_UNREF(grpc_mdelem_create(k, v, NULL)); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); grpc_slice_unref(k); track_counters.Finish(state); } @@ -224,11 +218,11 @@ static void BM_MetadataFromStaticMetadataStringsNotIndexed( TrackCounters track_counters; gpr_slice k = GRPC_MDSTR_STATUS; gpr_slice v = GRPC_MDSTR_GZIP; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, grpc_mdelem_create(&exec_ctx, k, v, NULL)); + GRPC_MDELEM_UNREF(grpc_mdelem_create(k, v, NULL)); } - grpc_exec_ctx_finish(&exec_ctx); + grpc_exec_ctx_finish(); grpc_slice_unref(k); track_counters.Finish(state); } @@ -237,16 +231,15 @@ BENCHMARK(BM_MetadataFromStaticMetadataStringsNotIndexed); static void BM_MetadataRefUnrefExternal(benchmark::State& state) { TrackCounters track_counters; char backing_store[sizeof(grpc_mdelem_data)]; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - grpc_mdelem el = - grpc_mdelem_create(&exec_ctx, grpc_slice_from_static_string("a"), - grpc_slice_from_static_string("b"), - reinterpret_cast<grpc_mdelem_data*>(backing_store)); + ExecCtx _local_exec_ctx; + grpc_mdelem el = grpc_mdelem_create( + grpc_slice_from_static_string("a"), grpc_slice_from_static_string("b"), + reinterpret_cast<grpc_mdelem_data*>(backing_store)); while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, GRPC_MDELEM_REF(el)); + GRPC_MDELEM_UNREF(GRPC_MDELEM_REF(el)); } - GRPC_MDELEM_UNREF(&exec_ctx, el); - grpc_exec_ctx_finish(&exec_ctx); + GRPC_MDELEM_UNREF(el); + grpc_exec_ctx_finish(); track_counters.Finish(state); } BENCHMARK(BM_MetadataRefUnrefExternal); @@ -254,47 +247,45 @@ BENCHMARK(BM_MetadataRefUnrefExternal); static void BM_MetadataRefUnrefInterned(benchmark::State& state) { TrackCounters track_counters; char backing_store[sizeof(grpc_mdelem_data)]; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + ExecCtx _local_exec_ctx; gpr_slice k = grpc_slice_intern(grpc_slice_from_static_string("key")); gpr_slice v = grpc_slice_intern(grpc_slice_from_static_string("value")); grpc_mdelem el = grpc_mdelem_create( - &exec_ctx, k, v, reinterpret_cast<grpc_mdelem_data*>(backing_store)); + k, v, reinterpret_cast<grpc_mdelem_data*>(backing_store)); grpc_slice_unref(k); grpc_slice_unref(v); while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, GRPC_MDELEM_REF(el)); + GRPC_MDELEM_UNREF(GRPC_MDELEM_REF(el)); } - GRPC_MDELEM_UNREF(&exec_ctx, el); - grpc_exec_ctx_finish(&exec_ctx); + GRPC_MDELEM_UNREF(el); + grpc_exec_ctx_finish(); track_counters.Finish(state); } BENCHMARK(BM_MetadataRefUnrefInterned); static void BM_MetadataRefUnrefAllocated(benchmark::State& state) { TrackCounters track_counters; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - grpc_mdelem el = - grpc_mdelem_create(&exec_ctx, grpc_slice_from_static_string("a"), - grpc_slice_from_static_string("b"), NULL); + ExecCtx _local_exec_ctx; + grpc_mdelem el = grpc_mdelem_create(grpc_slice_from_static_string("a"), + grpc_slice_from_static_string("b"), NULL); while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, GRPC_MDELEM_REF(el)); + GRPC_MDELEM_UNREF(GRPC_MDELEM_REF(el)); } - GRPC_MDELEM_UNREF(&exec_ctx, el); - grpc_exec_ctx_finish(&exec_ctx); + GRPC_MDELEM_UNREF(el); + grpc_exec_ctx_finish(); track_counters.Finish(state); } BENCHMARK(BM_MetadataRefUnrefAllocated); static void BM_MetadataRefUnrefStatic(benchmark::State& state) { TrackCounters track_counters; - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - grpc_mdelem el = - grpc_mdelem_create(&exec_ctx, GRPC_MDSTR_STATUS, GRPC_MDSTR_200, NULL); + ExecCtx _local_exec_ctx; + grpc_mdelem el = grpc_mdelem_create(GRPC_MDSTR_STATUS, GRPC_MDSTR_200, NULL); while (state.KeepRunning()) { - GRPC_MDELEM_UNREF(&exec_ctx, GRPC_MDELEM_REF(el)); + GRPC_MDELEM_UNREF(GRPC_MDELEM_REF(el)); } - GRPC_MDELEM_UNREF(&exec_ctx, el); - grpc_exec_ctx_finish(&exec_ctx); + GRPC_MDELEM_UNREF(el); + grpc_exec_ctx_finish(); track_counters.Finish(state); } BENCHMARK(BM_MetadataRefUnrefStatic); |