diff options
author | Elliott Hughes <enh@google.com> | 2014-12-01 16:43:51 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-12-01 16:43:51 -0800 |
commit | 212e0e38248860b151b28877225629a988d95b58 (patch) | |
tree | f43f3b8bc2472d2584750052171a0d6da5277e25 /benchmarks | |
parent | 076f69d828cfa5d30360e1dd2f24acd751d4a461 (diff) | |
download | bionic-212e0e38248860b151b28877225629a988d95b58.zip bionic-212e0e38248860b151b28877225629a988d95b58.tar.gz bionic-212e0e38248860b151b28877225629a988d95b58.tar.bz2 |
Build our benchmarks against glibc too.
Bug: 18556607
Change-Id: I455ac8b93c0835836180e549486bc52d393ee6a6
Diffstat (limited to 'benchmarks')
-rw-r--r-- | benchmarks/Android.mk | 25 | ||||
-rw-r--r-- | benchmarks/benchmark_main.cpp | 1 | ||||
-rw-r--r-- | benchmarks/pthread_benchmark.cpp | 4 | ||||
-rw-r--r-- | benchmarks/time_benchmark.cpp | 2 | ||||
-rw-r--r-- | benchmarks/unistd_benchmark.cpp | 4 |
5 files changed, 31 insertions, 5 deletions
diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk index eb39a85..f163463 100644 --- a/benchmarks/Android.mk +++ b/benchmarks/Android.mk @@ -32,7 +32,6 @@ benchmark_c_flags = \ benchmark_src_files = \ benchmark_main.cpp \ math_benchmark.cpp \ - property_benchmark.cpp \ pthread_benchmark.cpp \ semaphore_benchmark.cpp \ stdio_benchmark.cpp \ @@ -41,7 +40,8 @@ benchmark_src_files = \ unistd_benchmark.cpp \ # Build benchmarks for the device (with bionic's .so). Run with: -# adb shell bionic-benchmarks +# adb shell bionic-benchmarks32 +# adb shell bionic-benchmarks64 include $(CLEAR_VARS) LOCAL_MODULE := bionic-benchmarks LOCAL_MODULE_STEM_32 := bionic-benchmarks32 @@ -49,10 +49,29 @@ LOCAL_MODULE_STEM_64 := bionic-benchmarks64 LOCAL_MULTILIB := both LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_CFLAGS += $(benchmark_c_flags) -LOCAL_SRC_FILES := $(benchmark_src_files) +LOCAL_SRC_FILES := $(benchmark_src_files) property_benchmark.cpp LOCAL_CXX_STL := libc++ include $(BUILD_EXECUTABLE) +# We don't build a static benchmark executable because it's not usually +# useful. If you're trying to run the current benchmarks on an older +# release, it's (so far at least) always because you want to measure the +# performance of the old release's libc, and a static benchmark isn't +# going to let you do that. + +# Build benchmarks for the host (against glibc!). Run with: +include $(CLEAR_VARS) +LOCAL_MODULE := bionic-benchmarks-glibc +LOCAL_MODULE_STEM_32 := bionic-benchmarks-glibc32 +LOCAL_MODULE_STEM_64 := bionic-benchmarks-glibc64 +LOCAL_MULTILIB := both +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_CFLAGS += $(benchmark_c_flags) +LOCAL_LDFLAGS += -lrt +LOCAL_SRC_FILES := $(benchmark_src_files) +LOCAL_CXX_STL := libc++ +include $(BUILD_HOST_EXECUTABLE) + ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64)) ifeq ($(TARGET_ARCH),x86) LINKER = linker diff --git a/benchmarks/benchmark_main.cpp b/benchmarks/benchmark_main.cpp index d60670b..815d56b 100644 --- a/benchmarks/benchmark_main.cpp +++ b/benchmarks/benchmark_main.cpp @@ -19,6 +19,7 @@ #include <regex.h> #include <stdio.h> #include <stdlib.h> +#include <time.h> #include <string> #include <map> diff --git a/benchmarks/pthread_benchmark.cpp b/benchmarks/pthread_benchmark.cpp index 11db56d..92e5998 100644 --- a/benchmarks/pthread_benchmark.cpp +++ b/benchmarks/pthread_benchmark.cpp @@ -80,7 +80,7 @@ BENCHMARK(BM_pthread_mutex_lock); static void BM_pthread_mutex_lock_ERRORCHECK(int iters) { StopBenchmarkTiming(); - pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER; + pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -94,7 +94,7 @@ BENCHMARK(BM_pthread_mutex_lock_ERRORCHECK); static void BM_pthread_mutex_lock_RECURSIVE(int iters) { StopBenchmarkTiming(); - pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER; + pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { diff --git a/benchmarks/time_benchmark.cpp b/benchmarks/time_benchmark.cpp index 22f6e8e..f093ec1 100644 --- a/benchmarks/time_benchmark.cpp +++ b/benchmarks/time_benchmark.cpp @@ -16,7 +16,9 @@ #include "benchmark.h" +#include <unistd.h> #include <sys/syscall.h> +#include <sys/time.h> #include <time.h> static void BM_time_clock_gettime(int iters) { diff --git a/benchmarks/unistd_benchmark.cpp b/benchmarks/unistd_benchmark.cpp index 7e2ac30..94be1dd 100644 --- a/benchmarks/unistd_benchmark.cpp +++ b/benchmarks/unistd_benchmark.cpp @@ -41,6 +41,8 @@ static void BM_unistd_getpid_syscall(int iters) { } BENCHMARK(BM_unistd_getpid_syscall); +#if defined(__BIONIC__) + // Stop GCC optimizing out our pure function. /* Must not be static! */ pid_t (*gettid_fp)() = gettid; @@ -55,6 +57,8 @@ static void BM_unistd_gettid(int iters) { } BENCHMARK(BM_unistd_gettid); +#endif + static void BM_unistd_gettid_syscall(int iters) { StartBenchmarkTiming(); |