Возможно, пул не сильно вам поможет, если вообще сделает, может ухудшить ситуацию, хотя это зависит от ряда факторов (какой GC вы используете, как долго живут объекты, сколько памяти доступно и т. Д.)):
Время GC зависит в основном от количества живых объектов.Collector (я предполагаю, что вы запускаете ванильную Java JRE) не посещает мертвые объекты и не освобождает их один за другим.Это освобождает целые области памяти после копирования живых объектов (это сохраняет память опрятной и сжатой).100 мертвых объектов могут быть собраны так же быстро, как и 100000. С другой стороны, все живые объекты должны быть скопированы - так что, если у вас, скажем, есть пул из 100 объектов и только 50 используются в данный момент времени, сохраняя неиспользуемый объектЭто будет стоить вам.
Если ваши массивы в настоящее время, как правило, живут короче, чем время, необходимое для пребывания (копирование в пространство старого поколения), есть еще одна проблема: ваши объединенные массивы, безусловно, будут жить достаточно долго.Это создаст ситуацию, когда существует множество ссылок от старого поколения к молодому, и GC оптимизируются с учетом обратной ситуации.
На самом деле вполне возможно, что объединение массивов сделает ваш GC МЕНЬШЕ, чем создание новых;это обычно имеет место с дешевыми объектами.
Другая стоимость объединения заключается в синхронизации объектов между потоками и очистке их после использования.И то, и другое хитрее, чем кажется.
Подводя итог, если вы не хорошо знаете внутренности своего GC и не понимаете, как он работает под капотом, И не получили результатов от профилировщика, которые показывают, что управление всеми массивамиявляется узким местом - НЕ БАССЕЙН.В большинстве случаев это плохая идея.