aboutsummaryrefslogtreecommitdiff
path: root/src/benchmark.py
Commit message (Collapse)AuthorAgeFilesLines
* let the loader load the benchmark not execFlorian Fischer2019-08-121-1/+2
| | | | | If the loader calls build/exec the execvp from build/exec is handled by the system loader.
* fix benchmarks for any glibc versionFlorian Fischer2019-08-121-1/+1
| | | | | | | | | use the included loader of the build glibc instead of LD_LIBRARY_PATH. Using LD_LIBRARY_PATH probably fails because of incompatible system loaders and newer glibc versions. Then we have to reverse the positions of {measure cmd} and {cmd prefix} in the exec chain because ld loads only ELF binaries and {measure cmd} could be a script.
* use absolut path of benchmark binaryFlorian Fischer2019-08-121-1/+2
|
* use LD_LIBRARY_PATH for glibc instead of calling its loaderFlorian Fischer2019-08-121-1/+7
| | | | | | | | Calling the loader fails on non ELF executables. Exec, formerly run_cmd, now takes two options: -l LD_LIBRARY_PATH, -p LD_PRELOAD. -p sets LD_PRELOAD and -l LD_LIBRARY_PATH before executing the rest of argv. glibc no longer uses cmd_prefix in favor of LD_LIBRARY_PATH.
* Rework exec chainFlorian Fischer2019-08-111-18/+17
| | | | | | | | | | | | | | Originally the structure of the executed cmd was {measure cmd} {allocator cmd prefix} {cmd} with the parent environment except LD_PRELOAD was modified for the whole command chain. Unfortunatly perf causes segfaults with some allocators and measuring allocators cmd prefixes doesnt seem fair. So the new cmd chain looks like: {allocator cmd prefix} {measure cmd} run_cmd <LD_PRELOAD> {cmd} without touching the environment in python. run_cmd sets LD_PRELOAD to the value it received in argv[1] and executes argv[2] with the rest of argv. This does also measure code not part of the actual benchmark but in a equal manner and not only for some allocators.
* be more carefull with default entries in Benchmark.resultsFlorian Fischer2019-08-101-10/+18
|
* add facts to dataref exportFlorian Fischer2019-07-311-19/+43
|
* apply some flake8 hintsFlorian Fischer2019-06-191-36/+34
|
* fix old variable name in debug outputFlorian Fischer2019-06-171-1/+1
|
* save full server /proc/pid/status file in each result entryFlorian Fischer2019-05-271-1/+4
|
* fix libc_ver using code from pipFlorian Fischer2019-05-271-1/+1
|
* fix cmd for non server benchmarksFlorian Fischer2019-05-151-1/+1
|
* introduce server concept to BenchmarkFlorian Fischer2019-05-151-32/+102
| | | | | | | | | | | | A benchmark object can specify a list of cmds to execute as "servers" in the member attribute server_cmds. Servers are started and terminated through Popen objects. This requires the server cmds to not daemonize so the server can be terminated through the Popen object. For each started server cmd a shutdown function is registered with atexit to terminate all servers even if a exception occurs. Use the new server concept in httpd and mysql benchmarks
* add export to datarefFlorian Fischer2019-05-081-1/+27
|
* fix upper-whisker, singularize whisker names and capitalize csv headersFlorian Fischer2019-05-081-5/+5
|
* move list of available benchmarks to src.globalvars.benchmarksFlorian Fischer2019-04-291-1/+0
| | | | fix analyse
* fix Benchmark.runFlorian Fischer2019-04-281-1/+1
|
* use special allocator "malt" during analyse to run the benchmark only onceFlorian Fischer2019-04-281-6/+4
|
* don't fail if NaN is in evalFlorian Fischer2019-04-281-1/+7
|
* add standart deviation in percent of meanFlorian Fischer2019-04-151-0/+2
|
* improve descriptive statistics, csv-export and add general barplot functionFlorian Fischer2019-04-131-110/+198
|
* make tex tables standaloneFlorian Fischer2019-04-101-0/+3
|
* add normalization to plot_fixed_argFlorian Fischer2019-04-101-2/+10
|
* fix autoticks in plot_fixed_argFlorian Fischer2019-04-101-1/+1
|
* add analyze and server_benchmark featureFlorian Fischer2019-04-021-49/+61
| | | | | | | | | | | | | | | | | | | | | | --analyze uses malt to trace the benchmarks behavior. It uses the run loop but the obtained results are not stored Benchmark.server_benchmark is used if only a server is started for each allocator and clients are used to measure its performance in the run loop. If server_benchmark is set to True the cmds are run with the system default allocator. Misc changes: * The global environment is no longer changed. Instead a custom env dict is passed to suprocesses containing LD_PRELOAD. * Failing cmds no longer skip the whole benchmark instead they now skip the malfunctioning allocator. * Fix default title in plot_single_arg an analyse run are not stored
* move find_cmd to src/util.pyFlorian Fischer2019-04-021-24/+5
|
* add export_to_csv and use it in the loop benchmarkFlorian Fischer2019-03-251-1/+43
|
* fix plot_single_argFlorian Fischer2019-03-231-1/+1
|
* use numpy NaN for non numerical resultsFlorian Fischer2019-03-221-1/+4
|
* fix some ExceptionsFlorian Fischer2019-03-221-1/+1
|
* calculate mean and standard deviation for every data pointFlorian Fischer2019-03-221-42/+52
|
* alwys reset LD_PRELOAD even when a exception occursFlorian Fischer2019-03-221-0/+3
|
* use exceptions in mysql benchmarkFlorian Fischer2019-03-211-29/+16
|
* add scale arg to plot_single_argFlorian Fischer2019-03-191-4/+29
|
* fix run=0Florian Fischer2019-03-191-1/+1
|
* Don't print running if -r 0 is setFlorian Fischer2019-03-081-0/+5
|
* reset LD_PRELOAD after each allocatorFlorian Fischer2019-03-081-0/+7
|
* fix scale_threadsFlorian Fischer2019-03-061-1/+1
|
* improve thread scalingFlorian Fischer2019-03-061-8/+9
|
* add allocators to globalvars; kill mysql server on exit; save libc versions ↵Florian Fischer2019-03-061-3/+7
| | | | of requirements
* add function to scale thread to available cpusFlorian Fischer2019-03-051-0/+27
|
* add new verbosity and colored outputFlorian Fischer2019-03-051-31/+33
|
* fix perf checksFlorian Fischer2019-02-271-3/+7
|
* don't print output of test ls callFlorian Fischer2019-02-271-1/+2
|
* Revert "use global perf_allowed"Florian Fischer2019-02-221-5/+3
| | | | This reverts commit d6d502c22d7d0438b3151fd32d7eb6f83b73711f.
* use global perf_allowedFlorian Fischer2019-02-221-3/+5
|
* fix perf checkFlorian Fischer2019-02-221-2/+2
|
* add perf checkFlorian Fischer2019-02-221-0/+19
|
* be more verbose if requirement was not foundFlorian Fischer2019-02-221-0/+2
|
* change kwargs order to match order of call in bench.pyFlorian Fischer2019-02-151-1/+1
|