Стоп тут.
Вы совершаете один из худших грехов, который возможен при настройке производительности.
Вы предполагаете, что проблема с производительностью заключается в том, что, как вы думаете, есть в коде.
Вы этого не знаете, и, пока у вас нет веских доказательств, вы могли бы оптимизировать не то, что нужно, - и, возможно, усугубить ситуацию.
Прежде всего, вам необходимо подтвердить, что проблема в коде приложения. Поскольку это многопоточное приложение, которое загружает данные (по сети) и вставляет их в базу данных (по сети), сначала необходимо исключить проблемы, связанные с мониторами / блокировками потоков и проблемами с сетью / вводом-выводом.
Слишком рано даже использовать профилировщик. Если вы заполнили профиль сейчас, вы можете пропустить вещи.
1) Если у вас нет переключателей ГХ, включите их сейчас. Производственные приложения Java не должны никогда работать без регистрации GC.
2) Перезапустите тестовый пример, запустив vmstat 1 (если это Unix) или диспетчер задач (если это Windows).
3) Обновите свой вопрос, указав сведения о том, увеличивается ли загрузка ЦП до 100% во время выполнения теста, и мы можем сделать следующий шаг.