A framework for Efficient and Dynamic Collection Selection.
The current version of this framework is a proof-of-concept for our paper at CGO'18.
We will soon be releasing a stable release version for everyones use. We are currentl fixing some rough edges :)
This instructions will get you to build and use CollectionsSwitch in your application.
To build and run Collections-Bench you need:
Java >= 8
Maven
This version of the CollectionSwitch has a local dependency on smrt.jar, which is not in any
public repository, so first run:
./configure.py ../${PATH_TO}/smrt.jar
You then can simply install the CollectionSwitch by running mvn install in the project.
The entry point of the CollectionSwitch adaptation is the AllocationContext.
To instantiate the context with a default type as JDK ArrayList, you can call the factory method.
static ListAllocationContext ctx = AllocationContextFactory.buildListContext(ListCollectionType.JDK_ARRAYLIST, "myContextName");We recommend you to only use the context as a static member of a class.
To enable the adaptive behavior, you should allow the collection instantiation to be performed by the context, as follows:
List<T> list = ctx.createList();- Diego Costa - []
With adaptations to smrt by:
- Noric Couderc
- Christoph Reichenbach