| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | catch SIGSEGV as well; register sa_handlers only if its SIG_DLF before | Florian Fischer | 2019-09-29 | 1 | -7/+2 |
| | | |||||
| * | catch if cmd aborts | Florian Fischer | 2019-09-29 | 1 | -1/+7 |
| | | | | | | | perf stat does not propagate if the measured cmd aborts. To solve thing in a universal way we register a SIGABRT handler which creates the file aborted | ||||
| * | add perm substitution for benchmarks with empty args | Florian Fischer | 2019-09-19 | 1 | -0/+2 |
| | | |||||
| * | add raxml-ng benchmark | Florian Fischer | 2019-09-14 | 1 | -3/+3 |
| | | |||||
| * | explicitly collect binary versions | Florian Fischer | 2019-09-11 | 1 | -1/+0 |
| | | | | | | | | There is no generic way to retrieve the version of a binary. Not everyone followes GNU cli guidelines and supports "--version". The larson benchmark for example reads input from stdin when started with "larson --version" blocking the Benchmark.prepare() call. | ||||
| * | fix wrong use of benchmark.results["facts"] | Florian Fischer | 2019-09-11 | 1 | -1/+1 |
| | | |||||
| * | add build_dir member to Benchmark objects | Florian Fischer | 2019-09-11 | 1 | -0/+4 |
| | | |||||
| * | improve server benchmarks | Florian Fischer | 2019-09-11 | 1 | -20/+55 |
| | | | | | | | | servers are now dictionary with two mandatory keys: "name" and "cmd". Optional keys are: * "prepare_cmds": commands are run after a server is started * "shutdown_cmds": commands are run before a server is terminated | ||||
| * | add runs to benchmark facts | Florian Fischer | 2019-09-11 | 1 | -0/+2 |
| | | |||||
| * | fix barplot for benchmarks with empty args dict | Florian Fischer | 2019-09-04 | 1 | -3/+9 |
| | | |||||
| * | rework Benchmark.terminate_subprocess to use Popen.communicate | Florian Fischer | 2019-09-04 | 1 | -10/+12 |
| | | | | | code is inspired by the example in the python3 subprocess documentation | ||||
| * | try to get version of benchmark requirements | Florian Fischer | 2019-08-30 | 1 | -1/+3 |
| | | |||||
| * | improve benchmark code quality | Florian Fischer | 2019-08-29 | 1 | -11/+17 |
| | | |||||
| * | require a name in Benchmark.__init__ | Florian Fischer | 2019-08-29 | 1 | -15/+16 |
| | | |||||
| * | remove verbosity argument from hooks | Florian Fischer | 2019-08-27 | 1 | -9/+3 |
| | | |||||
| * | set Benchmark.result_dir in Benchmark.__init__ | Florian Fischer | 2019-08-26 | 1 | -0/+6 |
| | | |||||
| * | add error bars to barplot_single_arg | Florian Fischer | 2019-08-26 | 1 | -2/+9 |
| | | |||||
| * | only call shutdown_servers if there are servers | Florian Fischer | 2019-08-24 | 1 | -1/+2 |
| | | |||||
| * | add benchmark members to available substitutions | Florian Fischer | 2019-08-22 | 1 | -0/+2 |
| | | |||||
| * | remove duplicate check if we really should run the benchmark | Florian Fischer | 2019-08-22 | 1 | -4/+1 |
| | | |||||
| * | stop saving or calculating stats of allocators without measurements | Florian Fischer | 2019-08-22 | 1 | -3/+11 |
| | | |||||
| * | remove old not used statistic fields from results dictionary | Florian Fischer | 2019-08-22 | 1 | -2/+0 |
| | | |||||
| * | Merge branch 'lld' | Florian Fischer | 2019-08-20 | 1 | -12/+25 |
| |\ | |||||
| | * | add lld benchmark using lld provided benchmarkslld | Florian Fischer | 2019-08-20 | 1 | -13/+26 |
| | | | | | | | | | | | | | | | Benchmark changes the current working directory if self.run_dir is set befor each benchmark run. lld does not work with print_status_on_exit.so so reading and removing status is no only done if a status file is available. | ||||
| * | | fix benchmarks without measure command | Florian Fischer | 2019-08-20 | 1 | -4/+6 |
| |/ | |||||
| * | let the loader load the benchmark not exec | Florian Fischer | 2019-08-12 | 1 | -1/+2 |
| | | | | | | If the loader calls build/exec the execvp from build/exec is handled by the system loader. | ||||
| * | fix benchmarks for any glibc version | Florian Fischer | 2019-08-12 | 1 | -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 binary | Florian Fischer | 2019-08-12 | 1 | -1/+2 |
| | | |||||
| * | use LD_LIBRARY_PATH for glibc instead of calling its loader | Florian Fischer | 2019-08-12 | 1 | -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 chain | Florian Fischer | 2019-08-11 | 1 | -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.results | Florian Fischer | 2019-08-10 | 1 | -10/+18 |
| | | |||||
| * | add facts to dataref export | Florian Fischer | 2019-07-31 | 1 | -19/+43 |
| | | |||||
| * | apply some flake8 hints | Florian Fischer | 2019-06-19 | 1 | -36/+34 |
| | | |||||
| * | fix old variable name in debug output | Florian Fischer | 2019-06-17 | 1 | -1/+1 |
| | | |||||
| * | save full server /proc/pid/status file in each result entry | Florian Fischer | 2019-05-27 | 1 | -1/+4 |
| | | |||||
| * | fix libc_ver using code from pip | Florian Fischer | 2019-05-27 | 1 | -1/+1 |
| | | |||||
| * | fix cmd for non server benchmarks | Florian Fischer | 2019-05-15 | 1 | -1/+1 |
| | | |||||
| * | introduce server concept to Benchmark | Florian Fischer | 2019-05-15 | 1 | -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 dataref | Florian Fischer | 2019-05-08 | 1 | -1/+27 |
| | | |||||
| * | fix upper-whisker, singularize whisker names and capitalize csv headers | Florian Fischer | 2019-05-08 | 1 | -5/+5 |
| | | |||||
| * | move list of available benchmarks to src.globalvars.benchmarks | Florian Fischer | 2019-04-29 | 1 | -1/+0 |
| | | | | | fix analyse | ||||
| * | fix Benchmark.run | Florian Fischer | 2019-04-28 | 1 | -1/+1 |
| | | |||||
| * | use special allocator "malt" during analyse to run the benchmark only once | Florian Fischer | 2019-04-28 | 1 | -6/+4 |
| | | |||||
| * | don't fail if NaN is in eval | Florian Fischer | 2019-04-28 | 1 | -1/+7 |
| | | |||||
| * | add standart deviation in percent of mean | Florian Fischer | 2019-04-15 | 1 | -0/+2 |
| | | |||||
| * | improve descriptive statistics, csv-export and add general barplot function | Florian Fischer | 2019-04-13 | 1 | -110/+198 |
| | | |||||
| * | make tex tables standalone | Florian Fischer | 2019-04-10 | 1 | -0/+3 |
| | | |||||
| * | add normalization to plot_fixed_arg | Florian Fischer | 2019-04-10 | 1 | -2/+10 |
| | | |||||
| * | fix autoticks in plot_fixed_arg | Florian Fischer | 2019-04-10 | 1 | -1/+1 |
| | | |||||
| * | add analyze and server_benchmark feature | Florian Fischer | 2019-04-02 | 1 | -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 | ||||
