Skip to content

karel-brinda/galitime

Repository files navigation

galitime

info-badge github-release-badge pypi-badge zenodo-badge ci-tests-badge

Introduction

Software for benchmarking programs using the GNU Time command, with extensive benchmarking options and unified behaviour across platforms (including output units). Inspired by the benchmarking script in Phylign developed by Leandro Lima.

Quick example

$ if [[ $(uname) == "Darwin" ]]; then brew install gnu-time; fi
$ conda install -y -c bioconda -c conda-forge galitime

$ galitime --log time.log ls

$ cat time.log
real_s  user_s  sys_s   percent_cpu max_ram_kb  exit_code   fs_inputs   fs_outputs  real_s_alt  command
0.03    0.00    0.00    10% 2904    0   0   0   0.076661    ls

Installation

Dependencies

Galitime has no dependencies beyond Python 3. While it used to require gtime on OS X, this dependency is no longer required and the default time command is used.

Using Bioconda

conda install -y -c bioconda -c conda-forge galitime

Using PyPI

Install the Galitime Python package:

pip install -U galitime

Command-line parameters

$ galitime -h
usage: galitime [-h] --log LOG [--experiment EXPERIMENT] [-v] command

Benchmark a command.

positional arguments:
  command               The command to be benchmarked

options:
  -h, --help            show this help message and exit
  --log LOG             Path to the log file with benchmark statistics (if the directory doesn't exist, it will be created).
  --experiment EXPERIMENT
                        Name of the experiment (to be attached to the output)
  -v                    show program's version number and exit

Output

  • experiment - Name of the experiment, if provided via -n
  • run - Number of run in case of multiple repetitions
  • real_s - Real time in seconds (wall clock time)
  • real_s_py - Python-measured real time in seconds (slightly higher than real_s)
  • user_s - User CPU time in seconds (user mode, excluding system calls)
  • sys_s - System CPU time in seconds (kernel mode)
  • percent_cpu - CPU usage percentage
  • max_ram_kb - Maximum RAM usage in kilobytes
  • exit_code - Exit code of the command (0 if everything ok, -1 if command failed)
  • fs_inputs - File system read read operations count
  • fs_outputs - File system write operations count
  • command - Command executed, with tabs replaced by spaces

Issues

Please use Github issues.

Changelog

See Releases.

Licence

MIT

Contact