Stava is a static program analysis for identifying stack allocable objects of code written in Java. With the results generated, a JVM can be instructed to allocate those objects on the stack instead of the heap. Analysis is performed on java bytecode and Stava will only generate partial results if library code is unavailable. This project is based on the PYE framework.
This project only requires a working installation of Java 8. Clone the repo and you're good to go! Use scripts from the scripts package and set them up according to your installation.
Sample scripts are provided in the scripts directory. There are 2 types of usecases for stava.
- Benchmark Code: This code is expected to be precompiled. These can be benchmarks like DaCapo.
- Application Code: This is code written by user that has to be compiled. More instructions here.
- Soot- a Java optimization framework which enables this project to look into class files and much more.