I have a huge openHAB environment running on a Raspi PI 2 as well. No performance issue here at all.
There is just one thing that should be considered when it comes to devices with limit memory (1GB in case of the Pi2) and the usage of a Java application like openHAB… Garbage collection.
It seems the Java runtime normally gives each running java process a limit of maximum memory used and a much lower threshold on how small it can/should become in the memory. This means every information allocated in the memory will sooner or later be removed (to freeup space for new information).
In our use case, openHAB is the only Java process running and the most information allocated in memory should not been dropped because it will be reused sooner or later.
I ended up with the following two parameters in the start.sh to set both, the minimum and the maximum memory limit to 650MB…
This is making a real difference. i have a quit complex voice rule to control nearly everything by natural spoken commands. Without those parameters, the first command could take up to 20 seconds until it was processed (far from any acceptable delay). The second command was very fast. Often less than a second.
But after some time (a hour or something) it took 20 second once again… I guess because the garbage collector did get rid of some stuff.
After adding the two parameters. It is all the time fast, except the very first time after starting openHAB (what just happens every few weeks when I do some maintenance) .