Для одноядерных процессоров используйте любой сборщик мусора, но не указывайте количество потоков для него. На данный момент лучшим сборщиком является ConcMarkSweepGC. Чем больше число SurvivorRatio — тем лучше, соответственно тем меньше старые объекты будут захламлять Оперативную память. Чем больше значение TargetSurvivorRatio, тем большее количество объектов будет очищаться (желательно не ставить более 90). Использовать MaxGCPauseMillis лучше всего с G1GC или с конкретно указанным сборщиком мусора. AutoGCSelectPauseMillis — со сборщиком, который система сама выберет. G1HeapRegionSize лучше не устанавливать, java сама подберет оптимальное значение, использовать рекомендуем только в случае, если Вы знаете, что делаете.