Когда встает вопрос об оптимизации производительности многопользовательского приложения, в центре внимания обычно оказывается устранение или минимизация противоречий между скоростью работы приложений и эффективным использованием памяти. В приложениях Java имеется один типичный источник таких противоречий – так называемая "сборка мусора" (GC). В этой статье подробно описывается влияние процесса GC на функционирование приложения, а также представлена формула, позволяющая предсказать степень такого влияния для различных приложений в системе. Здесь также приведены рекомендации на случай, если этот процесс приводит к существенному снижению производительности системы, и описаны некоторые принципы программирования с эффективным использованием памяти, которые могут применяться в целях оптимизации производительности системы.