diff options
Diffstat (limited to 'benchmarks/pthread_benchmark.cpp')
-rw-r--r-- | benchmarks/pthread_benchmark.cpp | 74 |
1 files changed, 38 insertions, 36 deletions
diff --git a/benchmarks/pthread_benchmark.cpp b/benchmarks/pthread_benchmark.cpp index 42023e04a..2f6572dd8 100644 --- a/benchmarks/pthread_benchmark.cpp +++ b/benchmarks/pthread_benchmark.cpp @@ -14,14 +14,15 @@ * limitations under the License. */ -#include "benchmark.h" - #include <pthread.h> +#include <benchmark/Benchmark.h> + // Stop GCC optimizing out our pure function. /* Must not be static! */ pthread_t (*pthread_self_fp)() = pthread_self; -static void BM_pthread_self(int iters) { +BENCHMARK_NO_ARG(BM_pthread_self); +void BM_pthread_self::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -30,9 +31,9 @@ static void BM_pthread_self(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_self); -static void BM_pthread_getspecific(int iters) { +BENCHMARK_NO_ARG(BM_pthread_getspecific); +void BM_pthread_getspecific::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; pthread_key_create(&key, NULL); @@ -45,9 +46,9 @@ static void BM_pthread_getspecific(int iters) { StopBenchmarkTiming(); pthread_key_delete(key); } -BENCHMARK(BM_pthread_getspecific); -static void BM_pthread_setspecific(int iters) { +BENCHMARK_NO_ARG(BM_pthread_setspecific); +void BM_pthread_setspecific::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; pthread_key_create(&key, NULL); @@ -60,12 +61,12 @@ static void BM_pthread_setspecific(int iters) { StopBenchmarkTiming(); pthread_key_delete(key); } -BENCHMARK(BM_pthread_setspecific); static void DummyPthreadOnceInitFunction() { } -static void BM_pthread_once(int iters) { +BENCHMARK_NO_ARG(BM_pthread_once); +void BM_pthread_once::Run(int iters) { StopBenchmarkTiming(); pthread_once_t once = PTHREAD_ONCE_INIT; pthread_once(&once, DummyPthreadOnceInitFunction); @@ -77,9 +78,9 @@ static void BM_pthread_once(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_once); -static void BM_pthread_mutex_lock(int iters) { +BENCHMARK_NO_ARG(BM_pthread_mutex_lock); +void BM_pthread_mutex_lock::Run(int iters) { StopBenchmarkTiming(); pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; StartBenchmarkTiming(); @@ -91,9 +92,9 @@ static void BM_pthread_mutex_lock(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_mutex_lock); -static void BM_pthread_mutex_lock_ERRORCHECK(int iters) { +BENCHMARK_NO_ARG(BM_pthread_mutex_lock_ERRORCHECK); +void BM_pthread_mutex_lock_ERRORCHECK::Run(int iters) { StopBenchmarkTiming(); pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; StartBenchmarkTiming(); @@ -105,9 +106,9 @@ static void BM_pthread_mutex_lock_ERRORCHECK(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_mutex_lock_ERRORCHECK); -static void BM_pthread_mutex_lock_RECURSIVE(int iters) { +BENCHMARK_NO_ARG(BM_pthread_mutex_lock_RECURSIVE); +void BM_pthread_mutex_lock_RECURSIVE::Run(int iters) { StopBenchmarkTiming(); pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; StartBenchmarkTiming(); @@ -119,9 +120,9 @@ static void BM_pthread_mutex_lock_RECURSIVE(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_mutex_lock_RECURSIVE); -static void BM_pthread_rw_lock_read(int iters) { +BENCHMARK_NO_ARG(BM_pthread_rw_lock_read); +void BM_pthread_rw_lock_read::Run(int iters) { StopBenchmarkTiming(); pthread_rwlock_t lock; pthread_rwlock_init(&lock, NULL); @@ -135,9 +136,9 @@ static void BM_pthread_rw_lock_read(int iters) { StopBenchmarkTiming(); pthread_rwlock_destroy(&lock); } -BENCHMARK(BM_pthread_rw_lock_read); -static void BM_pthread_rw_lock_write(int iters) { +BENCHMARK_NO_ARG(BM_pthread_rw_lock_write); +void BM_pthread_rw_lock_write::Run(int iters) { StopBenchmarkTiming(); pthread_rwlock_t lock; pthread_rwlock_init(&lock, NULL); @@ -151,13 +152,13 @@ static void BM_pthread_rw_lock_write(int iters) { StopBenchmarkTiming(); pthread_rwlock_destroy(&lock); } -BENCHMARK(BM_pthread_rw_lock_write); static void* IdleThread(void*) { return NULL; } -static void BM_pthread_create(int iters) { +BENCHMARK_NO_ARG(BM_pthread_create); +void BM_pthread_create::Run(int iters) { StopBenchmarkTiming(); pthread_t thread; @@ -168,43 +169,45 @@ static void BM_pthread_create(int iters) { pthread_join(thread, NULL); } } -BENCHMARK(BM_pthread_create); -static void* RunThread(void*) { - StopBenchmarkTiming(); +static void* RunThread(void* arg) { + ::testing::Benchmark* benchmark = reinterpret_cast<::testing::Benchmark*>(arg); + benchmark->StopBenchmarkTiming(); return NULL; } -static void BM_pthread_create_and_run(int iters) { +BENCHMARK_NO_ARG(BM_pthread_create_and_run); +void BM_pthread_create_and_run::Run(int iters) { StopBenchmarkTiming(); pthread_t thread; for (int i = 0; i < iters; ++i) { StartBenchmarkTiming(); - pthread_create(&thread, NULL, RunThread, NULL); + pthread_create(&thread, NULL, RunThread, this); pthread_join(thread, NULL); } } -BENCHMARK(BM_pthread_create_and_run); -static void* ExitThread(void*) { - StartBenchmarkTiming(); +static void* ExitThread(void* arg) { + ::testing::Benchmark* benchmark = reinterpret_cast<::testing::Benchmark*>(arg); + benchmark->StartBenchmarkTiming(); pthread_exit(NULL); } -static void BM_pthread_exit_and_join(int iters) { +BENCHMARK_NO_ARG(BM_pthread_exit_and_join); +void BM_pthread_exit_and_join::Run(int iters) { StopBenchmarkTiming(); pthread_t thread; for (int i = 0; i < iters; ++i) { - pthread_create(&thread, NULL, ExitThread, NULL); + pthread_create(&thread, NULL, ExitThread, this); pthread_join(thread, NULL); StopBenchmarkTiming(); } } -BENCHMARK(BM_pthread_exit_and_join); -static void BM_pthread_key_create(int iters) { +BENCHMARK_NO_ARG(BM_pthread_key_create); +void BM_pthread_key_create::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; @@ -215,9 +218,9 @@ static void BM_pthread_key_create(int iters) { pthread_key_delete(key); } } -BENCHMARK(BM_pthread_key_create); -static void BM_pthread_key_delete(int iters) { +BENCHMARK_NO_ARG(BM_pthread_key_delete); +void BM_pthread_key_delete::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; @@ -228,4 +231,3 @@ static void BM_pthread_key_delete(int iters) { StopBenchmarkTiming(); } } -BENCHMARK(BM_pthread_key_delete); |