Реально, способ, который вы описали, является лучшим подходом.Он будет работать достаточно хорошо по сравнению со всем, что вы могли бы сделать, и его будет легко реализовать.
Снова и снова люди задают вопросы о том, как сделать что-то «эффективно».Лучший ответ почти всегда, "даже не пытайтесь".Если ваше улучшение не является алгоритмическим, оно вряд ли что-то изменит в любом случае, и особенно в таком случае, дополнительные усилия и сложность не стоят того минимального выигрыша, которого вы могли бы достичь.
по-другому, и заимствовать цитату (хотя я не могу вспомнить автора), первое правило оптимизации: не.
Сказав это, если вы действительнопочувствуя необходимость сжимать каждую последнюю каплю скорости, вы можете попробовать кэшировать и повторно использовать объекты (вместо того, чтобы полностью их отбрасывать, отслеживайте их в бесплатном хранилище объектов, а затем, когда вам нужно создать новый объект, сначала проверьтесвободное хранилище объектов, чтобы проверить, существует ли оно).Как всегда, вам нужно измерить производительность до и после, чтобы увидеть, действительно ли она помогает (скорее всего, она мало поможет, если физическая память действительно не ограничена, в этом случае сборка мусора может стать дорогой).