Я хотел найти быстрый способ сохранить все объекты в памяти для простого начального доказательства концепции.
Простой способ сделать это - запустить JVM с кучей, которая настолько велика, что GC никогда не должен запускаться. Установите для параметров -Xmx
и -Xms
большое значение и включите ведение журнала GC, чтобы убедиться, что GC не работает в течение всего теста.
Это будет быстрее и проще, чем модификация JVM.
(Оглядываясь назад, это может не сработать. Я смутно припоминаю свидетельства, свидетельствующие о том, что JVM не всегда всегда учитывает настройку -Xms
, особенно если она была действительно большой. Тем не менее, этот подход стоит попробовать, прежде чем пытаться использовать более сложный подход, например, модифицировать JVM.)
Кроме того, все это кажется мне ненужным (даже контрпродуктивным) для того, чего вы на самом деле пытаетесь достичь. GC не будет выбрасывать объекты, если они не являются мусором. И если они мусор, вы не сможете их использовать. И производительность системы с отключенным / отключенным GC не будет показывать, как будет работать приложение real .