This document describes the structure of Slicer4J's benchmarks, and how to run them.
There are 11 benchmarks: 3 borrowed from JavaSlicer, 5 we created to highlight Slicer4J's strengths, and 3 real programs from the Defects4J dataset.
Benchmark | Folder |
---|---|
Intra-procedural | javaslicer-bench1-intra-procedural |
Inter-procedural | javaslicer-bench2-inter-procedural |
Exceptions | javaslicer-bench3-exceptions |
Benchmark | Folder |
---|---|
Multiple threads | slicer4j-bench1-multiple-threads |
Native methods | slicer4j-bench2-native-framework |
Java 9 constructs | slicer4j-bench3-java-9-constructs |
Instrumentation classes | slicer4j-bench4-instrumentation-classes |
Static Constructor | slicer4j-bench5-static-constructor |
Benchmark | Folder |
---|---|
JacksonCore: bug #4 | JacksonCore_4b |
JacksonDatabind: bug #3 | JacksonDatabind_3b |
Gson: bug #4 | Gson_4b |
Run the script run_benchmarks.py
using python3: python3 run_benchmarks.py
The script creates a results folder, runs all benchmarks, and places the traces and slices in the results folder.