Author: bcraig Date: Mon Aug 1 14:56:39 2016 New Revision: 277373 URL: http://llvm.org/viewvc/llvm-project?rev=277373&view=rev Log: Adding smart_ptr benchmark
Initial draft here: https://reviews.llvm.org/D22470 ... though this is Eric Fiselier's rewrite to fit in with Google Benchmark. Added: libcxx/trunk/benchmarks/util_smartptr.bench.cpp Added: libcxx/trunk/benchmarks/util_smartptr.bench.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/benchmarks/util_smartptr.bench.cpp?rev=277373&view=auto ============================================================================== --- libcxx/trunk/benchmarks/util_smartptr.bench.cpp (added) +++ libcxx/trunk/benchmarks/util_smartptr.bench.cpp Mon Aug 1 14:56:39 2016 @@ -0,0 +1,42 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include <memory> + +#include "benchmark/benchmark_api.h" + +static void BM_SharedPtrCreateDestroy(benchmark::State& st) { + while (st.KeepRunning()) { + auto sp = std::make_shared<int>(42); + benchmark::DoNotOptimize(sp.get()); + } +} +BENCHMARK(BM_SharedPtrCreateDestroy); + +static void BM_SharedPtrIncDecRef(benchmark::State& st) { + auto sp = std::make_shared<int>(42); + benchmark::DoNotOptimize(sp.get()); + while (st.KeepRunning()) { + std::shared_ptr<int> sp2(sp); + benchmark::ClobberMemory(); + } +} +BENCHMARK(BM_SharedPtrIncDecRef); + +static void BM_WeakPtrIncDecRef(benchmark::State& st) { + auto sp = std::make_shared<int>(42); + benchmark::DoNotOptimize(sp.get()); + while (st.KeepRunning()) { + std::weak_ptr<int> wp(sp); + benchmark::ClobberMemory(); + } +} +BENCHMARK(BM_WeakPtrIncDecRef); + +BENCHMARK_MAIN() _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits