Find appropriate garbage collector(s) for CPAchecker
Modern JVMs provide a set of garbage collectors that are optimized for different use cases. A nice overview is for example here. Some of these garbage collectors also provide specific tuning options. We expect that some of these garbage collectors will be better for CPAchecker than others, but so far we have not found anything concrete.
So we should make a thorough and systematic evaluation of these garbage collectors and their options. We want to find out which garbage collector is the most efficient (in terms of CPU time), which is fasted (in terms of wall time), and which provides the best memory efficiency (least timeouts for a given memory limit). We want to get an overview over this for different memory limits and different analyses.
We also have to take into account the setting of -heap
while doing this.
First steps would be to get an overview over the JVM options and decide, which of these look most interesting to evaluate. Then a set of interesting analyses and memory limits needs to be defined.
In the end, we would like to get a recommendation for a specific set of JVM options, potentially depending on use case (optimizing for CPU time, wall time, memory), used analysis, and memory limit.