History log of /bionic/benchmarks/ (Results 1 – 25 of 167)
Revision (<<< Hide revision tags) (Show revision tags >>>)Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
Revision tags: android-11.0.0_r8, android-11.0.0_r7, m/android-11.0.0_r8, android-vts-10.0_r5, android-vts-11.0_r1, android-security-11.0.0_r1, android-platform-11.0.0_r1, android-cts-11.0_r1, android-11.0.0_r5, android-11.0.0_r4, android-11.0.0_r3, android-11.0.0_r2, android-11.0.0_r1, platform-tools-30.0.4, android-mainline-11.0.0_r2, android-r-beta-3, android-r-beta-2, android-mainline-11.0.0_r1, platform-tools-30.0.3, platform-tools-30.0.2, android-mainline-10.0.0_r11, platform-tools-30.0.1, platform-tools-30.0.0, android-r-preview-4, android-r-preview-3, android-r-preview-2
a5d8b1b021-Feb-2020 Christopher Ferris

Add a std::map, std::unordered_map benchmark.

This benchmark also includes the measuring of RSS.

Bug: 137795072

Test: Ran different iterations and verified the RSS_MB value

Add a std::map, std::unordered_map benchmark.

This benchmark also includes the measuring of RSS.

Bug: 137795072

Test: Ran different iterations and verified the RSS_MB value is nearly
Test: identical no matter the number of iterations.
Change-Id: I465a0eae9dcff2e1fb739c35623a26291680951f
(cherry picked from commit d613f89bf00d447145241eb90089ba44e29e4043)

show more ...

4b11192d20-Feb-2020 Jake Weinstein

benchmarks: add 16 and 32 bytes to common sizes

Per Wilco Dijkstra at ARM, 16 and 32 byte copies are much more common
than 8 or 64.

Change-Id: I3699d8bcd5f9dd8a8ccd8564a6cf58d2b

benchmarks: add 16 and 32 bytes to common sizes

Per Wilco Dijkstra at ARM, 16 and 32 byte copies are much more common
than 8 or 64.

Change-Id: I3699d8bcd5f9dd8a8ccd8564a6cf58d2bd7089f5
Suggested-By: Wilco Dijkstra <wilco.dijkstra@arm.com>

show more ...

Revision tags: platform-tools-29.0.6, android-r-preview-1
bdb678c903-Feb-2020 Tom Cherry

Merge "Add an end-to-end property benchmark."


Android.bp
README.md
atomic_benchmark.cpp
bionic_benchmarks.cpp
ctype_benchmark.cpp
dlfcn_benchmark.cpp
expf_input.cpp
get_heap_size_benchmark.cpp
inttypes_benchmark.cpp
linker_relocation/.gitignore
linker_relocation/Android.bp
linker_relocation/README.md
linker_relocation/gen/Android.bp
linker_relocation/gen/liblinker_reloc_bench_000.S
linker_relocation/gen/liblinker_reloc_bench_001.S
linker_relocation/gen/liblinker_reloc_bench_002.S
linker_relocation/gen/liblinker_reloc_bench_003.S
linker_relocation/gen/liblinker_reloc_bench_004.S
linker_relocation/gen/liblinker_reloc_bench_005.S
linker_relocation/gen/liblinker_reloc_bench_006.S
linker_relocation/gen/liblinker_reloc_bench_007.S
linker_relocation/gen/liblinker_reloc_bench_008.S
linker_relocation/gen/liblinker_reloc_bench_008.map
linker_relocation/gen/liblinker_reloc_bench_009.S
linker_relocation/gen/liblinker_reloc_bench_010.S
linker_relocation/gen/liblinker_reloc_bench_011.S
linker_relocation/gen/liblinker_reloc_bench_012.S
linker_relocation/gen/liblinker_reloc_bench_013.S
linker_relocation/gen/liblinker_reloc_bench_014.S
linker_relocation/gen/liblinker_reloc_bench_015.S
linker_relocation/gen/liblinker_reloc_bench_016.S
linker_relocation/gen/liblinker_reloc_bench_017.S
linker_relocation/gen/liblinker_reloc_bench_018.S
linker_relocation/gen/liblinker_reloc_bench_019.S
linker_relocation/gen/liblinker_reloc_bench_020.S
linker_relocation/gen/liblinker_reloc_bench_021.S
linker_relocation/gen/liblinker_reloc_bench_022.S
linker_relocation/gen/liblinker_reloc_bench_023.S
linker_relocation/gen/liblinker_reloc_bench_024.S
linker_relocation/gen/liblinker_reloc_bench_025.S
linker_relocation/gen/liblinker_reloc_bench_026.S
linker_relocation/gen/liblinker_reloc_bench_027.S
linker_relocation/gen/liblinker_reloc_bench_028.S
linker_relocation/gen/liblinker_reloc_bench_029.S
linker_relocation/gen/liblinker_reloc_bench_030.S
linker_relocation/gen/liblinker_reloc_bench_031.S
linker_relocation/gen/liblinker_reloc_bench_032.S
linker_relocation/gen/liblinker_reloc_bench_033.S
linker_relocation/gen/liblinker_reloc_bench_034.S
linker_relocation/gen/liblinker_reloc_bench_035.S
linker_relocation/gen/liblinker_reloc_bench_036.S
linker_relocation/gen/liblinker_reloc_bench_037.S
linker_relocation/gen/liblinker_reloc_bench_038.S
linker_relocation/gen/liblinker_reloc_bench_039.S
linker_relocation/gen/liblinker_reloc_bench_040.S
linker_relocation/gen/liblinker_reloc_bench_041.S
linker_relocation/gen/liblinker_reloc_bench_042.S
linker_relocation/gen/liblinker_reloc_bench_043.S
linker_relocation/gen/liblinker_reloc_bench_044.S
linker_relocation/gen/liblinker_reloc_bench_045.S
linker_relocation/gen/liblinker_reloc_bench_046.S
linker_relocation/gen/liblinker_reloc_bench_047.S
linker_relocation/gen/liblinker_reloc_bench_048.S
linker_relocation/gen/liblinker_reloc_bench_049.S
linker_relocation/gen/liblinker_reloc_bench_050.S
linker_relocation/gen/liblinker_reloc_bench_051.S
linker_relocation/gen/liblinker_reloc_bench_052.S
linker_relocation/gen/liblinker_reloc_bench_053.S
linker_relocation/gen/liblinker_reloc_bench_054.S
linker_relocation/gen/liblinker_reloc_bench_055.S
linker_relocation/gen/liblinker_reloc_bench_056.S
linker_relocation/gen/liblinker_reloc_bench_057.S
linker_relocation/gen/liblinker_reloc_bench_058.S
linker_relocation/gen/liblinker_reloc_bench_059.S
linker_relocation/gen/liblinker_reloc_bench_060.S
linker_relocation/gen/liblinker_reloc_bench_061.S
linker_relocation/gen/liblinker_reloc_bench_062.S
linker_relocation/gen/liblinker_reloc_bench_063.S
linker_relocation/gen/liblinker_reloc_bench_064.S
linker_relocation/gen/liblinker_reloc_bench_065.S
linker_relocation/gen/liblinker_reloc_bench_066.S
linker_relocation/gen/liblinker_reloc_bench_067.S
linker_relocation/gen/liblinker_reloc_bench_068.S
linker_relocation/gen/liblinker_reloc_bench_069.S
linker_relocation/gen/liblinker_reloc_bench_070.S
linker_relocation/gen/liblinker_reloc_bench_071.S
linker_relocation/gen/liblinker_reloc_bench_071.map
linker_relocation/gen/liblinker_reloc_bench_072.S
linker_relocation/gen/liblinker_reloc_bench_073.S
linker_relocation/gen/liblinker_reloc_bench_074.S
linker_relocation/gen/liblinker_reloc_bench_075.S
linker_relocation/gen/liblinker_reloc_bench_076.S
linker_relocation/gen/liblinker_reloc_bench_077.S
linker_relocation/gen/liblinker_reloc_bench_077.map
linker_relocation/gen/liblinker_reloc_bench_078.S
linker_relocation/gen/liblinker_reloc_bench_079.S
linker_relocation/gen/liblinker_reloc_bench_080.S
linker_relocation/gen/liblinker_reloc_bench_081.S
linker_relocation/gen/liblinker_reloc_bench_082.S
linker_relocation/gen/liblinker_reloc_bench_083.S
linker_relocation/gen/liblinker_reloc_bench_084.S
linker_relocation/gen/liblinker_reloc_bench_085.S
linker_relocation/gen/liblinker_reloc_bench_086.S
linker_relocation/gen/liblinker_reloc_bench_087.S
linker_relocation/gen/liblinker_reloc_bench_088.S
linker_relocation/gen/liblinker_reloc_bench_089.S
linker_relocation/gen/liblinker_reloc_bench_090.S
linker_relocation/gen/liblinker_reloc_bench_091.S
linker_relocation/gen/liblinker_reloc_bench_092.S
linker_relocation/gen/liblinker_reloc_bench_093.S
linker_relocation/gen/liblinker_reloc_bench_094.S
linker_relocation/gen/liblinker_reloc_bench_095.S
linker_relocation/gen/liblinker_reloc_bench_095.map
linker_relocation/gen/liblinker_reloc_bench_096.S
linker_relocation/gen/liblinker_reloc_bench_097.S
linker_relocation/gen/liblinker_reloc_bench_097.map
linker_relocation/gen/liblinker_reloc_bench_098.S
linker_relocation/gen/liblinker_reloc_bench_099.S
linker_relocation/gen/liblinker_reloc_bench_100.S
linker_relocation/gen/liblinker_reloc_bench_101.S
linker_relocation/gen/liblinker_reloc_bench_102.S
linker_relocation/gen/liblinker_reloc_bench_103.S
linker_relocation/gen/liblinker_reloc_bench_104.S
linker_relocation/gen/liblinker_reloc_bench_105.S
linker_relocation/gen/liblinker_reloc_bench_106.S
linker_relocation/gen/liblinker_reloc_bench_106.map
linker_relocation/gen/liblinker_reloc_bench_107.S
linker_relocation/gen/liblinker_reloc_bench_108.S
linker_relocation/gen/liblinker_reloc_bench_109.S
linker_relocation/gen/liblinker_reloc_bench_110.S
linker_relocation/gen/liblinker_reloc_bench_111.S
linker_relocation/gen/liblinker_reloc_bench_112.S
linker_relocation/gen/liblinker_reloc_bench_113.S
linker_relocation/gen/liblinker_reloc_bench_114.S
linker_relocation/gen/liblinker_reloc_bench_115.S
linker_relocation/gen/liblinker_reloc_bench_116.S
linker_relocation/gen/liblinker_reloc_bench_117.S
linker_relocation/gen/liblinker_reloc_bench_118.S
linker_relocation/gen/liblinker_reloc_bench_119.S
linker_relocation/gen/liblinker_reloc_bench_120.S
linker_relocation/gen/liblinker_reloc_bench_121.S
linker_relocation/gen/liblinker_reloc_bench_122.S
linker_relocation/gen/liblinker_reloc_bench_123.S
linker_relocation/gen/liblinker_reloc_bench_124.S
linker_relocation/gen/liblinker_reloc_bench_125.S
linker_relocation/gen/liblinker_reloc_bench_126.S
linker_relocation/gen/liblinker_reloc_bench_127.S
linker_relocation/gen/liblinker_reloc_bench_128.S
linker_relocation/gen/liblinker_reloc_bench_129.S
linker_relocation/gen/liblinker_reloc_bench_130.S
linker_relocation/gen/liblinker_reloc_bench_131.S
linker_relocation/gen/liblinker_reloc_bench_132.S
linker_relocation/gen/liblinker_reloc_bench_133.S
linker_relocation/gen/liblinker_reloc_bench_134.S
linker_relocation/gen/liblinker_reloc_bench_135.S
linker_relocation/gen/liblinker_reloc_bench_136.S
linker_relocation/gen/liblinker_reloc_bench_137.S
linker_relocation/gen/liblinker_reloc_bench_138.S
linker_relocation/gen/liblinker_reloc_bench_139.S
linker_relocation/gen/liblinker_reloc_bench_140.S
linker_relocation/gen/liblinker_reloc_bench_141.S
linker_relocation/gen/liblinker_reloc_bench_142.S
linker_relocation/gen/liblinker_reloc_bench_143.S
linker_relocation/gen/liblinker_reloc_bench_144.S
linker_relocation/gen/liblinker_reloc_bench_145.S
linker_relocation/gen/liblinker_reloc_bench_146.S
linker_relocation/gen/liblinker_reloc_bench_147.S
linker_relocation/gen/liblinker_reloc_bench_148.S
linker_relocation/gen/liblinker_reloc_bench_149.S
linker_relocation/gen/liblinker_reloc_bench_150.S
linker_relocation/gen/liblinker_reloc_bench_151.S
linker_relocation/gen/liblinker_reloc_bench_152.S
linker_relocation/gen/liblinker_reloc_bench_153.S
linker_relocation/gen/liblinker_reloc_bench_154.S
linker_relocation/gen/liblinker_reloc_bench_155.S
linker_relocation/gen/liblinker_reloc_bench_156.S
linker_relocation/gen/liblinker_reloc_bench_157.S
linker_relocation/gen/liblinker_reloc_bench_157.map
linker_relocation/gen/liblinker_reloc_bench_158.S
linker_relocation/gen/liblinker_reloc_bench_159.S
linker_relocation/gen/liblinker_reloc_bench_160.S
linker_relocation/gen/liblinker_reloc_bench_161.S
linker_relocation/gen/liblinker_reloc_bench_162.S
linker_relocation/gen/liblinker_reloc_bench_163.S
linker_relocation/gen/liblinker_reloc_bench_164.S
linker_relocation/gen/liblinker_reloc_bench_165.S
linker_relocation/gen/liblinker_reloc_bench_166.S
linker_relocation/gen/liblinker_reloc_bench_167.S
linker_relocation/gen/liblinker_reloc_bench_168.S
linker_relocation/gen/linker_reloc_bench_main.S
linker_relocation/gen_bench.sh
linker_relocation/include/linker_reloc_bench_asm.h
linker_relocation/linker_reloc_bench.cpp
linker_relocation/regen/common_types.py
linker_relocation/regen/dump_relocs.py
linker_relocation/regen/gen_bench.py
linker_relocation/run_bench_with_ninja.sh
logf_input.cpp
malloc_benchmark.cpp
malloc_sql.h
malloc_sql_benchmark.cpp
math_benchmark.cpp
powf_input.cpp
property_benchmark.cpp
pthread_benchmark.cpp
run-on-host.sh
semaphore_benchmark.cpp
sincosf_input.cpp
spawn/Android.bp
spawn/AndroidTest.xml
spawn/include/spawn_benchmark.h
spawn/noop.cpp
spawn/spawn_benchmark.cpp
spawn/spawn_benchmarks.cpp
stdio_benchmark.cpp
stdlib_benchmark.cpp
string_benchmark.cpp
suites/memcmp.xml
suites/strcmp.xml
suites/strncmp.xml
test_suites/test_alignment_onebuf_manual.xml
test_suites/test_alignment_twobuf_manual.xml
tests/interface_test.cpp
unistd_benchmark.cpp
util.cpp
util.h
wctype_benchmark.cpp
8937935530-Jan-2020 Christopher Ferris

Add a couple of new benchmarks.

Add a calloc benchmark to make sure that a native allocator isn't
doing anything incorrectly when zero'ing memory.

Also add a fork call benchmark

Add a couple of new benchmarks.

Add a calloc benchmark to make sure that a native allocator isn't
doing anything incorrectly when zero'ing memory.

Also add a fork call benchmark to verify that the time to make a
fork call isn't increasing.

Test: Ran benchmarks on walleye and verified that the numbers are not
Test: too variable between runs.
Change-Id: I61d289d277f85ac432a315e539cf6391ea036866

show more ...

Revision tags: android-vts-9.0_r14, android-vts-9.0_r13, android-vts-9.0_r12, android-cts-9.0_r13, android-cts-9.0_r12, android-cts-9.0_r11
f82e39f116-Jan-2020 Ryan Prichard

Add a liblog dependency

Modules with a libbase dependency also need a liblog dependency now.

Fixes the linker-reloc-bench build target.

Bug: b/147779981
Test: manual

Add a liblog dependency

Modules with a libbase dependency also need a liblog dependency now.

Fixes the linker-reloc-bench build target.

Bug: b/147779981
Test: manual
Change-Id: I41dd35717b665524a26a92a0c268e42c93a383b7

show more ...

Revision tags: android-vts-10.0_r4, android-vts-10.0_r3, android-cts-10.0_r5, android-cts-10.0_r4, android-cts-10.0_r3
41f1970824-Dec-2019 Ryan Prichard

Add a linker relocation benchmark

The benchmark creates a set of DSOs that mimic the work involved in
loading the current version of libandroid_servers.so. The synthetic
benchmark ha

Add a linker relocation benchmark

The benchmark creates a set of DSOs that mimic the work involved in
loading the current version of libandroid_servers.so. The synthetic
benchmark has roughly the same number of libraries with roughly the same
relocations.

Currently, on a local aosp_walleye build that includes recent performance
improvements (including the Neon-based CL
I3983bca1dddc9241bb70290ad3651d895f046660), using the "performance"
governor, the benchmark reports these scores:

$ adb shell taskset 10 \
/data/benchmarktest64/linker-reloc-bench/linker-reloc-bench \
--benchmark_repetitions=20 --benchmark_display_aggregates_only=true
...
--------------------------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------------------------
BM_linker_relocation/real_time_mean 70048 us 465 us 20
BM_linker_relocation/real_time_median 70091 us 466 us 20
BM_linker_relocation/real_time_stddev 329 us 8.29 us 20

$ adb shell taskset 10 \
/data/benchmarktest/linker-reloc-bench/linker-reloc-bench \
--benchmark_repetitions=20 --benchmark_display_aggregates_only=true
...
--------------------------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------------------------
BM_linker_relocation/real_time_mean 83051 us 462 us 20
BM_linker_relocation/real_time_median 83069 us 464 us 20
BM_linker_relocation/real_time_stddev 184 us 8.91 us 20

Test: manual
Bug: none
Change-Id: I6dac66978f8666f95c76387093bda6be0151bfce

show more ...


linker_relocation/.gitignore
linker_relocation/Android.bp
linker_relocation/README.md
linker_relocation/gen/Android.bp
linker_relocation/gen/liblinker_reloc_bench_000.S
linker_relocation/gen/liblinker_reloc_bench_001.S
linker_relocation/gen/liblinker_reloc_bench_002.S
linker_relocation/gen/liblinker_reloc_bench_003.S
linker_relocation/gen/liblinker_reloc_bench_004.S
linker_relocation/gen/liblinker_reloc_bench_005.S
linker_relocation/gen/liblinker_reloc_bench_006.S
linker_relocation/gen/liblinker_reloc_bench_007.S
linker_relocation/gen/liblinker_reloc_bench_008.S
linker_relocation/gen/liblinker_reloc_bench_008.map
linker_relocation/gen/liblinker_reloc_bench_009.S
linker_relocation/gen/liblinker_reloc_bench_010.S
linker_relocation/gen/liblinker_reloc_bench_011.S
linker_relocation/gen/liblinker_reloc_bench_012.S
linker_relocation/gen/liblinker_reloc_bench_013.S
linker_relocation/gen/liblinker_reloc_bench_014.S
linker_relocation/gen/liblinker_reloc_bench_015.S
linker_relocation/gen/liblinker_reloc_bench_016.S
linker_relocation/gen/liblinker_reloc_bench_017.S
linker_relocation/gen/liblinker_reloc_bench_018.S
linker_relocation/gen/liblinker_reloc_bench_019.S
linker_relocation/gen/liblinker_reloc_bench_020.S
linker_relocation/gen/liblinker_reloc_bench_021.S
linker_relocation/gen/liblinker_reloc_bench_022.S
linker_relocation/gen/liblinker_reloc_bench_023.S
linker_relocation/gen/liblinker_reloc_bench_024.S
linker_relocation/gen/liblinker_reloc_bench_025.S
linker_relocation/gen/liblinker_reloc_bench_026.S
linker_relocation/gen/liblinker_reloc_bench_027.S
linker_relocation/gen/liblinker_reloc_bench_028.S
linker_relocation/gen/liblinker_reloc_bench_029.S
linker_relocation/gen/liblinker_reloc_bench_030.S
linker_relocation/gen/liblinker_reloc_bench_031.S
linker_relocation/gen/liblinker_reloc_bench_032.S
linker_relocation/gen/liblinker_reloc_bench_033.S
linker_relocation/gen/liblinker_reloc_bench_034.S
linker_relocation/gen/liblinker_reloc_bench_035.S
linker_relocation/gen/liblinker_reloc_bench_036.S
linker_relocation/gen/liblinker_reloc_bench_037.S
linker_relocation/gen/liblinker_reloc_bench_038.S
linker_relocation/gen/liblinker_reloc_bench_039.S
linker_relocation/gen/liblinker_reloc_bench_040.S
linker_relocation/gen/liblinker_reloc_bench_041.S
linker_relocation/gen/liblinker_reloc_bench_042.S
linker_relocation/gen/liblinker_reloc_bench_043.S
linker_relocation/gen/liblinker_reloc_bench_044.S
linker_relocation/gen/liblinker_reloc_bench_045.S
linker_relocation/gen/liblinker_reloc_bench_046.S
linker_relocation/gen/liblinker_reloc_bench_047.S
linker_relocation/gen/liblinker_reloc_bench_048.S
linker_relocation/gen/liblinker_reloc_bench_049.S
linker_relocation/gen/liblinker_reloc_bench_050.S
linker_relocation/gen/liblinker_reloc_bench_051.S
linker_relocation/gen/liblinker_reloc_bench_052.S
linker_relocation/gen/liblinker_reloc_bench_053.S
linker_relocation/gen/liblinker_reloc_bench_054.S
linker_relocation/gen/liblinker_reloc_bench_055.S
linker_relocation/gen/liblinker_reloc_bench_056.S
linker_relocation/gen/liblinker_reloc_bench_057.S
linker_relocation/gen/liblinker_reloc_bench_058.S
linker_relocation/gen/liblinker_reloc_bench_059.S
linker_relocation/gen/liblinker_reloc_bench_060.S
linker_relocation/gen/liblinker_reloc_bench_061.S
linker_relocation/gen/liblinker_reloc_bench_062.S
linker_relocation/gen/liblinker_reloc_bench_063.S
linker_relocation/gen/liblinker_reloc_bench_064.S
linker_relocation/gen/liblinker_reloc_bench_065.S
linker_relocation/gen/liblinker_reloc_bench_066.S
linker_relocation/gen/liblinker_reloc_bench_067.S
linker_relocation/gen/liblinker_reloc_bench_068.S
linker_relocation/gen/liblinker_reloc_bench_069.S
linker_relocation/gen/liblinker_reloc_bench_070.S
linker_relocation/gen/liblinker_reloc_bench_071.S
linker_relocation/gen/liblinker_reloc_bench_071.map
linker_relocation/gen/liblinker_reloc_bench_072.S
linker_relocation/gen/liblinker_reloc_bench_073.S
linker_relocation/gen/liblinker_reloc_bench_074.S
linker_relocation/gen/liblinker_reloc_bench_075.S
linker_relocation/gen/liblinker_reloc_bench_076.S
linker_relocation/gen/liblinker_reloc_bench_077.S
linker_relocation/gen/liblinker_reloc_bench_077.map
linker_relocation/gen/liblinker_reloc_bench_078.S
linker_relocation/gen/liblinker_reloc_bench_079.S
linker_relocation/gen/liblinker_reloc_bench_080.S
linker_relocation/gen/liblinker_reloc_bench_081.S
linker_relocation/gen/liblinker_reloc_bench_082.S
linker_relocation/gen/liblinker_reloc_bench_083.S
linker_relocation/gen/liblinker_reloc_bench_084.S
linker_relocation/gen/liblinker_reloc_bench_085.S
linker_relocation/gen/liblinker_reloc_bench_086.S
linker_relocation/gen/liblinker_reloc_bench_087.S
linker_relocation/gen/liblinker_reloc_bench_088.S
linker_relocation/gen/liblinker_reloc_bench_089.S
linker_relocation/gen/liblinker_reloc_bench_090.S
linker_relocation/gen/liblinker_reloc_bench_091.S
linker_relocation/gen/liblinker_reloc_bench_092.S
linker_relocation/gen/liblinker_reloc_bench_093.S
linker_relocation/gen/liblinker_reloc_bench_094.S
linker_relocation/gen/liblinker_reloc_bench_095.S
linker_relocation/gen/liblinker_reloc_bench_095.map
linker_relocation/gen/liblinker_reloc_bench_096.S
linker_relocation/gen/liblinker_reloc_bench_097.S
linker_relocation/gen/liblinker_reloc_bench_097.map
linker_relocation/gen/liblinker_reloc_bench_098.S
linker_relocation/gen/liblinker_reloc_bench_099.S
linker_relocation/gen/liblinker_reloc_bench_100.S
linker_relocation/gen/liblinker_reloc_bench_101.S
linker_relocation/gen/liblinker_reloc_bench_102.S
linker_relocation/gen/liblinker_reloc_bench_103.S
linker_relocation/gen/liblinker_reloc_bench_104.S
linker_relocation/gen/liblinker_reloc_bench_105.S
linker_relocation/gen/liblinker_reloc_bench_106.S
linker_relocation/gen/liblinker_reloc_bench_106.map
linker_relocation/gen/liblinker_reloc_bench_107.S
linker_relocation/gen/liblinker_reloc_bench_108.S
linker_relocation/gen/liblinker_reloc_bench_109.S
linker_relocation/gen/liblinker_reloc_bench_110.S
linker_relocation/gen/liblinker_reloc_bench_111.S
linker_relocation/gen/liblinker_reloc_bench_112.S
linker_relocation/gen/liblinker_reloc_bench_113.S
linker_relocation/gen/liblinker_reloc_bench_114.S
linker_relocation/gen/liblinker_reloc_bench_115.S
linker_relocation/gen/liblinker_reloc_bench_116.S
linker_relocation/gen/liblinker_reloc_bench_117.S
linker_relocation/gen/liblinker_reloc_bench_118.S
linker_relocation/gen/liblinker_reloc_bench_119.S
linker_relocation/gen/liblinker_reloc_bench_120.S
linker_relocation/gen/liblinker_reloc_bench_121.S
linker_relocation/gen/liblinker_reloc_bench_122.S
linker_relocation/gen/liblinker_reloc_bench_123.S
linker_relocation/gen/liblinker_reloc_bench_124.S
linker_relocation/gen/liblinker_reloc_bench_125.S
linker_relocation/gen/liblinker_reloc_bench_126.S
linker_relocation/gen/liblinker_reloc_bench_127.S
linker_relocation/gen/liblinker_reloc_bench_128.S
linker_relocation/gen/liblinker_reloc_bench_129.S
linker_relocation/gen/liblinker_reloc_bench_130.S
linker_relocation/gen/liblinker_reloc_bench_131.S
linker_relocation/gen/liblinker_reloc_bench_132.S
linker_relocation/gen/liblinker_reloc_bench_133.S
linker_relocation/gen/liblinker_reloc_bench_134.S
linker_relocation/gen/liblinker_reloc_bench_135.S
linker_relocation/gen/liblinker_reloc_bench_136.S
linker_relocation/gen/liblinker_reloc_bench_137.S
linker_relocation/gen/liblinker_reloc_bench_138.S
linker_relocation/gen/liblinker_reloc_bench_139.S
linker_relocation/gen/liblinker_reloc_bench_140.S
linker_relocation/gen/liblinker_reloc_bench_141.S
linker_relocation/gen/liblinker_reloc_bench_142.S
linker_relocation/gen/liblinker_reloc_bench_143.S
linker_relocation/gen/liblinker_reloc_bench_144.S
linker_relocation/gen/liblinker_reloc_bench_145.S
linker_relocation/gen/liblinker_reloc_bench_146.S
linker_relocation/gen/liblinker_reloc_bench_147.S
linker_relocation/gen/liblinker_reloc_bench_148.S
linker_relocation/gen/liblinker_reloc_bench_149.S
linker_relocation/gen/liblinker_reloc_bench_150.S
linker_relocation/gen/liblinker_reloc_bench_151.S
linker_relocation/gen/liblinker_reloc_bench_152.S
linker_relocation/gen/liblinker_reloc_bench_153.S
linker_relocation/gen/liblinker_reloc_bench_154.S
linker_relocation/gen/liblinker_reloc_bench_155.S
linker_relocation/gen/liblinker_reloc_bench_156.S
linker_relocation/gen/liblinker_reloc_bench_157.S
linker_relocation/gen/liblinker_reloc_bench_157.map
linker_relocation/gen/liblinker_reloc_bench_158.S
linker_relocation/gen/liblinker_reloc_bench_159.S
linker_relocation/gen/liblinker_reloc_bench_160.S
linker_relocation/gen/liblinker_reloc_bench_161.S
linker_relocation/gen/liblinker_reloc_bench_162.S
linker_relocation/gen/liblinker_reloc_bench_163.S
linker_relocation/gen/liblinker_reloc_bench_164.S
linker_relocation/gen/liblinker_reloc_bench_165.S
linker_relocation/gen/liblinker_reloc_bench_166.S
linker_relocation/gen/liblinker_reloc_bench_167.S
linker_relocation/gen/liblinker_reloc_bench_168.S
linker_relocation/gen/linker_reloc_bench_main.S
linker_relocation/gen_bench.sh
linker_relocation/include/linker_reloc_bench_asm.h
linker_relocation/linker_reloc_bench.cpp
linker_relocation/regen/common_types.py
linker_relocation/regen/dump_relocs.py
linker_relocation/regen/gen_bench.py
linker_relocation/run_bench_with_ninja.sh
spawn/Android.bp
spawn/include/spawn_benchmark.h
spawn/spawn_benchmark.cpp
spawn/spawn_benchmarks.cpp
2f95d19a10-Jan-2020 Tom Cherry

Add liblog as a dependency where libbase is used.

(Also fix issues found from bpfmt)

Bug: 119867234
Test: build
Change-Id: I16e93ad7c26dadfb625acbe514abe0c0084f84b6

5a3c920005-Dec-2019 Christopher Ferris

Add mallopt M_PURGE benchmark.

Update the native allocator documentation to include running of this
benchmark.

Move the malloc_benchmark.cpp to malloc_sql_benchmark.cpp and use

Add mallopt M_PURGE benchmark.

Update the native allocator documentation to include running of this
benchmark.

Move the malloc_benchmark.cpp to malloc_sql_benchmark.cpp and use
malloc_benchmark.cpp for benchmarking functions from malloc.h.

Bug: 137795072

Test: Ran new benchmark.
Change-Id: I76856de833032da324ad0bc0b6bd85a4ea8c253d

show more ...

ae57a6b614-Nov-2019 Christopher Ferris

Remove unused code.

Test: Compiles.
Change-Id: I92095bd0ee59a3b98ee8deba1c3efc4685389a1b

b481a2e713-Nov-2019 Raman Tenneti

Revert "Revert "Make system property reads wait-free""

This reverts commit de39d9242ae38733c33173957386db0b8060e52a.

Reason for revert: This revert is not needed

Change-Id:

Revert "Revert "Make system property reads wait-free""

This reverts commit de39d9242ae38733c33173957386db0b8060e52a.

Reason for revert: This revert is not needed

Change-Id: I34af8e5d75c724f6c4066fafbfc6bc7d58377601

show more ...

de39d92413-Nov-2019 Raman Tenneti

Revert "Make system property reads wait-free"

This reverts commit 0cf90556de2bde53a1957c5946036b2fe2e4e429.

Reason for revert: Device boot failures - 144355953

Change-Id: I

Revert "Make system property reads wait-free"

This reverts commit 0cf90556de2bde53a1957c5946036b2fe2e4e429.

Reason for revert: Device boot failures - 144355953

Change-Id: Icd4fc8c7a1d06d688a6d37e6f1c1aa45563f711b

show more ...

Revision tags: android-mainline-10.0.0_r6, android-mainline-10.0.0_r8
0cf9055630-Oct-2019 Daniel Colascione

Make system property reads wait-free

Right now, when we read a system property, we first (assuming we've
already looked up the property's prop_info) read the property's serial
number

Make system property reads wait-free

Right now, when we read a system property, we first (assuming we've
already looked up the property's prop_info) read the property's serial
number; if we find that the low bit (the dirty bit) in the serial
number is set, we futex-wait for that serial number to become
non-dirty. By doing so, we spare readers from seeing partially-updated
property values if they race with the property service's non-atomic
memcpy to the property value slot. (The futex-wait here isn't
essential to the algorithm: spinning while dirty would suffice,
although it'd be somewhat less efficient.)

The problem with this approach is that readers can wait on the
property service process, potentially causing delays due to scheduling
variance. Property reads are not guaranteed to complete in finite time
right now.

This change makes property reads wait-free and ensures that they
complete in finite time in all cases. In the new approach, we prevent
value tearing by backing up each property we're about to modify and
directing readers to the backup copy if they try to read a property
with the dirty bit set.

(The wait freedom is limited to the case of readers racing against
*one* property update. A writer can still delay readers by rapidly
updating a property --- but after this change, readers can't hang due
to PID 1 scheduling delays.)

I considered adding explicit atomic access to short property values,
but between binary compatibility with the existing property database
and the need to carefully handle transitions of property values
between "short" (compatible with atomics) and "long" (incompatible
with atomics) length domains, I figured the complexity wasn't worth it
and that making property reads wait-free would be adequate.

Test: boots
Bug: 143561649
Change-Id: Ifd3108aedba5a4b157b66af6ca0a4ed084bd5982

show more ...

Revision tags: platform-tools-29.0.5
c4e727bf16-Oct-2019 Steven Moreland

Add dladdr benchmark.

Bug: 142684469
Test: adb shell /data/benchmarktest64/bionic-benchmarks/bionic-benchmarks --benchmark_filter="BM_dladdr.*"
--------------------------------------

Add dladdr benchmark.

Bug: 142684469
Test: adb shell /data/benchmarktest64/bionic-benchmarks/bionic-benchmarks --benchmark_filter="BM_dladdr.*"
-------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------
BM_dladdr_libbase_split 92.6 ns 92.4 ns 6673841
BM_dladdr_libc_printf 8690 ns 8667 ns 80916
BM_dladdr_libdl_dladdr 133 ns 132 ns 5342791
BM_dladdr_local_function 93.0 ns 92.7 ns 7625562

Change-Id: I259dd8f64ccc288835576a2eb08b8b8132777a4b

show more ...

a4959aa609-Oct-2019 Elliott Hughes

Reimplement the <ctype.h> is* functions.

Following on from the towlower()/towupper() changes, add benchmarks for
most of <ctype.h>, rewrite the tests to cover the entire defined range

Reimplement the <ctype.h> is* functions.

Following on from the towlower()/towupper() changes, add benchmarks for
most of <ctype.h>, rewrite the tests to cover the entire defined range
for all of these functions, and then reimplement most of the functions.

The old table-based implementation is mostly a bad idea on modern
hardware, with only ispunct() showing a significant benefit compared to
any other way I could think of writing it, and isalnum() a marginal but
still convincingly genuine benefit.

My new benchmarks make an effort to test an example from each relevant
range of characters to avoid, say, accidentally optimizing the behavior
of `isalnum('0')` at the expense of `isalnum('z')`.

Interestingly, clang is able to generate what I believe to be the
optimal implementations from the most readable code, which is
impressive. It certainly matched or beat all my attempts to be clever!

The BSD table-based implementations made a special case of EOF despite
having a `_ctype_` table that's offset by 1 to include EOF at index 0.
I'm not sure why they didn't take advantage of that, but removing the
explicit check for EOF measurably improves the generated code on arm and
arm64, so even the two functions that still use the table benefit from
this rewrite.

Here are the benchmark results:

arm64 before:
BM_ctype_isalnum_n 3.73 ns 3.73 ns 183727137
BM_ctype_isalnum_y1 3.82 ns 3.81 ns 186383058
BM_ctype_isalnum_y2 3.73 ns 3.72 ns 187809830
BM_ctype_isalnum_y3 3.78 ns 3.77 ns 181383055
BM_ctype_isalpha_n 3.75 ns 3.75 ns 189453927
BM_ctype_isalpha_y1 3.76 ns 3.75 ns 184854043
BM_ctype_isalpha_y2 4.32 ns 3.78 ns 186326931
BM_ctype_isascii_n 2.49 ns 2.48 ns 275583822
BM_ctype_isascii_y 2.51 ns 2.51 ns 282123915
BM_ctype_isblank_n 3.11 ns 3.10 ns 220472044
BM_ctype_isblank_y1 3.20 ns 3.19 ns 226088868
BM_ctype_isblank_y2 3.11 ns 3.11 ns 220809122
BM_ctype_iscntrl_n 3.79 ns 3.78 ns 188719938
BM_ctype_iscntrl_y1 3.72 ns 3.71 ns 186209237
BM_ctype_iscntrl_y2 3.80 ns 3.80 ns 184315749
BM_ctype_isdigit_n 3.76 ns 3.74 ns 188334682
BM_ctype_isdigit_y 3.78 ns 3.77 ns 186249335
BM_ctype_isgraph_n 3.99 ns 3.98 ns 177814143
BM_ctype_isgraph_y1 3.98 ns 3.95 ns 175140090
BM_ctype_isgraph_y2 4.01 ns 4.00 ns 178320453
BM_ctype_isgraph_y3 3.96 ns 3.95 ns 175412814
BM_ctype_isgraph_y4 4.01 ns 4.00 ns 175711174
BM_ctype_islower_n 3.75 ns 3.74 ns 188604818
BM_ctype_islower_y 3.79 ns 3.78 ns 154738238
BM_ctype_isprint_n 3.96 ns 3.95 ns 177607734
BM_ctype_isprint_y1 3.94 ns 3.93 ns 174877244
BM_ctype_isprint_y2 4.02 ns 4.01 ns 178206135
BM_ctype_isprint_y3 3.94 ns 3.93 ns 175959069
BM_ctype_isprint_y4 4.03 ns 4.02 ns 176158314
BM_ctype_isprint_y5 3.95 ns 3.94 ns 178745462
BM_ctype_ispunct_n 3.78 ns 3.77 ns 184727184
BM_ctype_ispunct_y 3.76 ns 3.75 ns 187947503
BM_ctype_isspace_n 3.74 ns 3.74 ns 185300285
BM_ctype_isspace_y1 3.77 ns 3.76 ns 187202066
BM_ctype_isspace_y2 3.73 ns 3.73 ns 184105959
BM_ctype_isupper_n 3.81 ns 3.80 ns 185038761
BM_ctype_isupper_y 3.71 ns 3.71 ns 185885793
BM_ctype_isxdigit_n 3.79 ns 3.79 ns 184965673
BM_ctype_isxdigit_y1 3.76 ns 3.75 ns 188251672
BM_ctype_isxdigit_y2 3.79 ns 3.78 ns 184187481
BM_ctype_isxdigit_y3 3.77 ns 3.76 ns 187635540

arm64 after:
BM_ctype_isalnum_n 3.37 ns 3.37 ns 205613810
BM_ctype_isalnum_y1 3.40 ns 3.39 ns 204806361
BM_ctype_isalnum_y2 3.43 ns 3.43 ns 205066077
BM_ctype_isalnum_y3 3.50 ns 3.50 ns 200057128
BM_ctype_isalpha_n 2.97 ns 2.97 ns 236084076
BM_ctype_isalpha_y1 2.97 ns 2.97 ns 236083626
BM_ctype_isalpha_y2 2.97 ns 2.97 ns 236084246
BM_ctype_isascii_n 2.55 ns 2.55 ns 272879994
BM_ctype_isascii_y 2.46 ns 2.45 ns 286522323
BM_ctype_isblank_n 3.18 ns 3.18 ns 220431175
BM_ctype_isblank_y1 3.18 ns 3.18 ns 220345602
BM_ctype_isblank_y2 3.18 ns 3.18 ns 220308509
BM_ctype_iscntrl_n 3.10 ns 3.10 ns 220344270
BM_ctype_iscntrl_y1 3.10 ns 3.07 ns 228973615
BM_ctype_iscntrl_y2 3.07 ns 3.07 ns 229192626
BM_ctype_isdigit_n 3.07 ns 3.07 ns 228925676
BM_ctype_isdigit_y 3.07 ns 3.07 ns 229182934
BM_ctype_isgraph_n 2.66 ns 2.66 ns 264268737
BM_ctype_isgraph_y1 2.66 ns 2.66 ns 264445277
BM_ctype_isgraph_y2 2.66 ns 2.66 ns 264327427
BM_ctype_isgraph_y3 2.66 ns 2.66 ns 264427480
BM_ctype_isgraph_y4 2.66 ns 2.66 ns 264155250
BM_ctype_islower_n 2.66 ns 2.66 ns 264421600
BM_ctype_islower_y 2.66 ns 2.66 ns 264341148
BM_ctype_isprint_n 2.66 ns 2.66 ns 264415198
BM_ctype_isprint_y1 2.66 ns 2.66 ns 264268793
BM_ctype_isprint_y2 2.66 ns 2.66 ns 264419205
BM_ctype_isprint_y3 2.66 ns 2.66 ns 264205886
BM_ctype_isprint_y4 2.66 ns 2.66 ns 264440797
BM_ctype_isprint_y5 2.72 ns 2.72 ns 264333293
BM_ctype_ispunct_n 3.52 ns 3.51 ns 198956572
BM_ctype_ispunct_y 3.38 ns 3.38 ns 201661792
BM_ctype_isspace_n 3.39 ns 3.39 ns 206896620
BM_ctype_isspace_y1 3.39 ns 3.39 ns 206569020
BM_ctype_isspace_y2 3.39 ns 3.39 ns 206564415
BM_ctype_isupper_n 2.76 ns 2.75 ns 254227134
BM_ctype_isupper_y 2.76 ns 2.75 ns 254235314
BM_ctype_isxdigit_n 3.60 ns 3.60 ns 194418653
BM_ctype_isxdigit_y1 2.97 ns 2.97 ns 236082424
BM_ctype_isxdigit_y2 3.48 ns 3.48 ns 200390011
BM_ctype_isxdigit_y3 3.48 ns 3.48 ns 202255815

arm32 before:
BM_ctype_isalnum_n 4.77 ns 4.76 ns 129230464
BM_ctype_isalnum_y1 4.88 ns 4.87 ns 147939321
BM_ctype_isalnum_y2 4.74 ns 4.73 ns 145508054
BM_ctype_isalnum_y3 4.81 ns 4.80 ns 144968914
BM_ctype_isalpha_n 4.80 ns 4.79 ns 148262579
BM_ctype_isalpha_y1 4.74 ns 4.73 ns 145061326
BM_ctype_isalpha_y2 4.83 ns 4.82 ns 147642546
BM_ctype_isascii_n 3.74 ns 3.72 ns 186711139
BM_ctype_isascii_y 3.79 ns 3.78 ns 183654780
BM_ctype_isblank_n 4.20 ns 4.19 ns 169733252
BM_ctype_isblank_y1 4.19 ns 4.18 ns 165713363
BM_ctype_isblank_y2 4.22 ns 4.21 ns 168776265
BM_ctype_iscntrl_n 4.75 ns 4.74 ns 145417484
BM_ctype_iscntrl_y1 4.82 ns 4.81 ns 146283250
BM_ctype_iscntrl_y2 4.79 ns 4.78 ns 148662453
BM_ctype_isdigit_n 4.77 ns 4.76 ns 145789210
BM_ctype_isdigit_y 4.84 ns 4.84 ns 146909458
BM_ctype_isgraph_n 4.72 ns 4.71 ns 145874663
BM_ctype_isgraph_y1 4.86 ns 4.85 ns 142037606
BM_ctype_isgraph_y2 4.79 ns 4.78 ns 145109612
BM_ctype_isgraph_y3 4.75 ns 4.75 ns 144829039
BM_ctype_isgraph_y4 4.86 ns 4.85 ns 146769899
BM_ctype_islower_n 4.76 ns 4.75 ns 147537637
BM_ctype_islower_y 4.79 ns 4.78 ns 145648017
BM_ctype_isprint_n 4.82 ns 4.81 ns 147154780
BM_ctype_isprint_y1 4.76 ns 4.76 ns 145117604
BM_ctype_isprint_y2 4.87 ns 4.86 ns 145801406
BM_ctype_isprint_y3 4.79 ns 4.78 ns 148043446
BM_ctype_isprint_y4 4.77 ns 4.76 ns 145157619
BM_ctype_isprint_y5 4.91 ns 4.90 ns 147810800
BM_ctype_ispunct_n 4.74 ns 4.73 ns 145588611
BM_ctype_ispunct_y 4.82 ns 4.81 ns 144065436
BM_ctype_isspace_n 4.78 ns 4.77 ns 147153712
BM_ctype_isspace_y1 4.73 ns 4.72 ns 145252863
BM_ctype_isspace_y2 4.84 ns 4.83 ns 148615797
BM_ctype_isupper_n 4.75 ns 4.74 ns 148276631
BM_ctype_isupper_y 4.80 ns 4.79 ns 145529893
BM_ctype_isxdigit_n 4.78 ns 4.77 ns 147271646
BM_ctype_isxdigit_y1 4.74 ns 4.74 ns 145142209
BM_ctype_isxdigit_y2 4.83 ns 4.82 ns 146398497
BM_ctype_isxdigit_y3 4.78 ns 4.77 ns 147617686

arm32 after:
BM_ctype_isalnum_n 4.35 ns 4.35 ns 161086146
BM_ctype_isalnum_y1 4.36 ns 4.35 ns 160961111
BM_ctype_isalnum_y2 4.36 ns 4.36 ns 160733210
BM_ctype_isalnum_y3 4.35 ns 4.35 ns 160897524
BM_ctype_isalpha_n 3.67 ns 3.67 ns 189377208
BM_ctype_isalpha_y1 3.68 ns 3.67 ns 189438146
BM_ctype_isalpha_y2 3.75 ns 3.69 ns 190971186
BM_ctype_isascii_n 3.69 ns 3.68 ns 191029191
BM_ctype_isascii_y 3.68 ns 3.68 ns 191011817
BM_ctype_isblank_n 4.09 ns 4.09 ns 171887541
BM_ctype_isblank_y1 4.09 ns 4.09 ns 171829345
BM_ctype_isblank_y2 4.08 ns 4.07 ns 170585590
BM_ctype_iscntrl_n 4.08 ns 4.07 ns 170614383
BM_ctype_iscntrl_y1 4.13 ns 4.11 ns 171495899
BM_ctype_iscntrl_y2 4.19 ns 4.18 ns 165255578
BM_ctype_isdigit_n 4.25 ns 4.24 ns 165237008
BM_ctype_isdigit_y 4.24 ns 4.24 ns 165256149
BM_ctype_isgraph_n 3.82 ns 3.81 ns 183610114
BM_ctype_isgraph_y1 3.82 ns 3.81 ns 183614131
BM_ctype_isgraph_y2 3.82 ns 3.81 ns 183616840
BM_ctype_isgraph_y3 3.79 ns 3.79 ns 183620182
BM_ctype_isgraph_y4 3.82 ns 3.81 ns 185740009
BM_ctype_islower_n 3.75 ns 3.74 ns 183619502
BM_ctype_islower_y 3.68 ns 3.68 ns 190999901
BM_ctype_isprint_n 3.69 ns 3.68 ns 190899544
BM_ctype_isprint_y1 3.68 ns 3.67 ns 190192384
BM_ctype_isprint_y2 3.67 ns 3.67 ns 189351466
BM_ctype_isprint_y3 3.67 ns 3.67 ns 189430348
BM_ctype_isprint_y4 3.68 ns 3.68 ns 189430161
BM_ctype_isprint_y5 3.69 ns 3.68 ns 190962419
BM_ctype_ispunct_n 4.14 ns 4.14 ns 171034861
BM_ctype_ispunct_y 4.19 ns 4.19 ns 168308152
BM_ctype_isspace_n 4.50 ns 4.50 ns 156250887
BM_ctype_isspace_y1 4.48 ns 4.48 ns 155124476
BM_ctype_isspace_y2 4.50 ns 4.50 ns 155077504
BM_ctype_isupper_n 3.68 ns 3.68 ns 191020583
BM_ctype_isupper_y 3.68 ns 3.68 ns 191015669
BM_ctype_isxdigit_n 4.50 ns 4.50 ns 156276745
BM_ctype_isxdigit_y1 3.28 ns 3.27 ns 214729725
BM_ctype_isxdigit_y2 4.48 ns 4.48 ns 155265129
BM_ctype_isxdigit_y3 4.48 ns 4.48 ns 155216846

I've also corrected a small mistake in the documentation for isxdigit().

Test: tests and benchmarks
Change-Id: I4a77859f826c3fc8f0e327e847886882f29ec4a3

show more ...

Revision tags: ndk-r21d, ndk-r21c, ndk-r21b, ndk-r21-rc1, ndk-r21-beta2, ndk-r21-beta1, ndk-r21
41488b7928-Sep-2019 Ryan Prichard

Merge "Revert "Revert "Add benchmarks that run simple programs"""

9ff7d09627-Sep-2019 Elliott Hughes

Add trivial <ctype.h> benchmarks.

Just to sanity check that toupper/tolower and towupper/towlower are in
the same ballpark for the ASCII range.

Test: ran benchmarks
Change-I

Add trivial <ctype.h> benchmarks.

Just to sanity check that toupper/tolower and towupper/towlower are in
the same ballpark for the ASCII range.

Test: ran benchmarks
Change-Id: I1ddc3f4f4478b4075107831f27bf4d4b4a3bc5e8

show more ...

Revision tags: android-vts-10.0_r2, android-cts-10.0_r2
2c236bc527-Sep-2019 Ryan Prichard

Revert "Revert "Add benchmarks that run simple programs""

This reverts commit 3bf27c86d1327a5a66bf06af07027c4f1a37d358.

Disable the 32-bit glibc target. We're not interested in benc

Revert "Revert "Add benchmarks that run simple programs""

This reverts commit 3bf27c86d1327a5a66bf06af07027c4f1a37d358.

Disable the 32-bit glibc target. We're not interested in benchmarking that
target, and the bench_noop_nostl executable doesn't build when ASAN is
turned on, because the libclang_rt.asan_cxx-i386.a lib contains
ubsan_type_hash_itanium.cc.o, which needs __dynamic_cast and various
STL typeinfo variables. The equivalent libclang_rt.asan_cxx-x86_64.a
lib doesn't have ubsan_type_hash_itanium.cc.o in it.

Bug: http://b/141693636
Test: m bench_noop_nostl bench_noop bench_noop_static ASAN_OPTIONS=detect_leaks=0 SANITIZE_HOST=address
Change-Id: Id6de17e622682f3a166367ad670cba5bfa6aee47

show more ...

f5b44a5e27-Sep-2019 Elliott Hughes

Merge "benchmarks: remove more boilerplate."

0878ac9927-Sep-2019 Raman Tenneti

Merge "Revert "Add benchmarks that run simple programs""

3bf27c8627-Sep-2019 Raman Tenneti

Revert "Add benchmarks that run simple programs"

This reverts commit aa85ac2b08ed61fb5bc0867ea76529964dfa35ec.

Reason for revert: builds are broken - Bug: 141693636

Change-

Revert "Add benchmarks that run simple programs"

This reverts commit aa85ac2b08ed61fb5bc0867ea76529964dfa35ec.

Reason for revert: builds are broken - Bug: 141693636

Change-Id: I7502813ae519719c578a05676a0adf9537019bd3

show more ...

96705e3726-Sep-2019 Elliott Hughes

benchmarks: remove more boilerplate.

Many of our benchmarks are basically just "call one function with a
fixed argument". We don't need to keep repeating all the boilerplate for
that

benchmarks: remove more boilerplate.

Many of our benchmarks are basically just "call one function with a
fixed argument". We don't need to keep repeating all the boilerplate for
that.

This also ensures we don't forget the benchmark::DoNotOptimize, which --
in addition to being a good idea in general -- specifically solves the
problem with gettid benchmark and provides a more accurate result by
removing the indirection through a function pointer.

Test: ran benchmarks
Change-Id: Id67535243678cd0d48f51cf25141e2040da9af03

show more ...

bab9cfd926-Sep-2019 Elliott Hughes

Add trivial towlower/towupper benchmarks.

Currently 11ns for both ascii and unicode in 64-bit, 15ns for 32-bit.

Test: ran benchmarks
Change-Id: Ie810b324c855b52b66a96889a194bc5b

Add trivial towlower/towupper benchmarks.

Currently 11ns for both ascii and unicode in 64-bit, 15ns for 32-bit.

Test: ran benchmarks
Change-Id: Ie810b324c855b52b66a96889a194bc5b5b55653f

show more ...

ef0adb1226-Sep-2019 Ryan Prichard

Merge "run-on-host fixes"

aa85ac2b19-Sep-2019 Ryan Prichard

Add benchmarks that run simple programs

Specifically, test the wall-clock time for running:
* a C program that does nothing (i.e. no STL)
* a C++ program that does nothing
* a

Add benchmarks that run simple programs

Specifically, test the wall-clock time for running:
* a C program that does nothing (i.e. no STL)
* a C++ program that does nothing
* a statically-linked C++ program
* toybox true (in /system/bin and /vendor/bin)
* mksh -c true (in /system/bin and /vendor/bin)

Test: bionic-spawn-benchmarks
Change-Id: I961850ec90004cac83088feab5783f4f27768be1

show more ...

3cfb89d421-Sep-2019 Ryan Prichard

run-on-host fixes

* Fix the path to bionic-benchmarks-glibc

* Add symlinks for the toybox symlink commands. Each symlink bypasses the
intermediate symlink in ${OUT}/system/

run-on-host fixes

* Fix the path to bionic-benchmarks-glibc

* Add symlinks for the toybox symlink commands. Each symlink bypasses the
intermediate symlink in ${OUT}/system/bin and points to the final
toybox binary. Suppress a bunch of warnings by skipping symlinks for
non-existent files.

The new spawn benchmarks try to run /system/bin/true. (They also try to
run /vendor/bin/true and print an error.)

* Quote "$@"

* Use soong_ui.bash --dumpvars-mode to set a bunch of variables, rather
than get_build_var, which invokes Soong once per variable. This reduces
the "build/run-on-host.sh" runtime from 4s to 1.3s.

* build/run-on-host.sh isn't executable and is only useful when it's
sourced into another shell, so remove its shebang to reduce confusion.

Bug: none
Test: \
. build/envsetup.sh
lunch aosp_x86_64-userdebug
. bionic/build/run-on-host.sh
prepare MODULES-IN-bionic MODULES-IN-external-toybox
/system/bin/true

Change-Id: I59e9a6aca77d35b16bdf51759c5fc7e725bfc67c

show more ...

1234567