You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.0 KiB
26 lines
1.0 KiB
# Dynamic Linker Relocation Benchmark
|
|
|
|
This benchmark measures the time spent in the dynamic linker to load a large set
|
|
of shared objects with many symbols and relocations. It mimics the work involved
|
|
in loading a fixed version of `libandroid_servers.so`.
|
|
|
|
## Running the benchmark
|
|
|
|
To run the benchmark, build the `linker-reloc-bench` target, sync `data`, and
|
|
run the benchmark from `/data/benchmarktest[64]/linker-reloc-bench`.
|
|
|
|
There is also a `run_bench_with_ninja.sh` script that uses the
|
|
`gen_bench.py --ninja` mode to generate a benchmark. It's useful for
|
|
experimentation. The `--cc` and `--linker` flags allow swapping out different
|
|
static and dynamic linkers.
|
|
|
|
## Regenerating the synthetic benchmark
|
|
|
|
`regen/dump_relocs.py` scans an ELF file and its dependencies, outputting a JSON
|
|
dump, then `regen/gen_bench.py` processes the JSON file into benchmark code.
|
|
`gen_bench.py` has two modes:
|
|
|
|
- (default) generate Android.bp and source files
|
|
- with `--ninja`: generate a build.ninja instead, and build a set of ELF file
|
|
outputs
|