# DaCapo Analysis Tooling
## Overview
This project consists of analysis tooling for selecting Java benchmarks.
## Dependencies
This project depends on a few tools for analysis. Follow the installation instructions
from each tool before using the scripts provided in this project.
- [probes](https://gitlab.anu.edu.au/dacapo/tools/probes)
- [ckjm](https://github.com/dspinellis/ckjm)
- [elephant tracks 2](https://github.com/ElephantTracksProject/et2-java)
In order to use the scripts, you need to install the package dependencies:
```pip install -r requirements.txt```
## Usage
In order to use the scripts, execute the following command:
```python -m dacapo.analyzer [--help] [--w=val] [--n=val] [--jdk=val] [--dacapo=val] [--events=val]
[--static_analysis] [--bms=val] [--all] [--probes_path=val] [--ckjm=val]```
This will perform static or dynamic analysis depending on the values provided.
* If events are specified using the --events option, then dynamic analysis will
be performed.
* If a jar file is specified using the --dacapo option and no event is
specified, then static analysis will be performed on the given jar file.
* Finally, if the --static_analysis flag is specified, then static analysis is
performed on loaded classes during execution of a given benchmark.
optional arguments:
| Flag | Description
| --------------------| ---------------------------|
| --help | show help message and exit|
| --w=val | number of warmup iterations.|
| --n=val | number of invocations. |
| --jdk val | the jdk to use. |
| --dacapo=val | the DaCapo jar file to use.|
| --events=val | the perf events to measure.|
| --static_analysis | used to perform static analysis. |
| --bms=val | the benchmarks to run.
Options: avrora, batik, eclipse, fop, h2,
jython, luindex, lusearch, pmd, sunflow,
tomcat, tradebeans, tradesoap, and xalan. |
| --all | runs all benchmarks. |
| --probes_path=val | the path to the probes tool. |
| --ckjm=val | the ckjm jar file to use. |
## Testing
```python -m tests.testsuite```
## License
This work is released under the [Apache 2.0 license](LICENSE).