Skip to content

guilhas07/benchmark-gc

Repository files navigation

BenchmarkGC

Description

BenchmarkGC is a tool with the aim of benchmarking any given Java application, collecting metrics, and scoring all available Java Garbage Collectors with respect to execution time and GC pause time.

Requirements

  • Python == 3.12

How to use

  1. Ensure you have Python 3.12 installed.
  2. Install the dependencies required with the command:
pip install -r requirements.txt
  1. Have a benchmark suite config with the applications you desire to benchmark ready. See ./benchmarks_config_example.json for an example containing a config for Renaissance and DaCapo or Benchmark Config for more details on the Benchmark Config format.

  2. Run the tool with:

python main.py --config benchmarks_config_example.json

Remember to substitute the benchmarks_config_example.json file with your actual file.

Note

To see additional functionality, run:

python main.py --help

Development

To develop, additionally to the application dependencies you should also install the Development dependencies with:

pip install -r requirements-dev.txt

Benchmark Config

A benchmark config is a json file with the following properties:

  • benchmark_suites: An array of benchmark suite objects, each defining a collection of benchmarks to run.
    • suite_name: The name of the benchmark suite (e.g., DaCapo, Renaissance).
    • jar_path: The path to the JAR file containing the benchmark applications.
    • run_options (optional): An object containing additional runtime options for the benchmark, such as:
      • command (optional): A string specifying the general command-line options for the suite.
      • java_options (optional): Java-specific options (e.g., JVM flags).
      • post_exec_script (optional): A script to execute after the benchmark application starts. This could be used to send requests to your application for example.
      • timeout (optional): Specifies the time (in seconds) allowed for the benchmark to run. If the benchmark exceeds this time it will be terminated.
    • benchmarks_config (optional): An array of individual benchmark configurations within the suite, each with:
      • name: The name of the specific benchmark.
      • run_options (optional): Same as above. This will override the global benchmark suite options.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages