В последних версиях JVM имеется множество параметров XX для сборки мусора (см., Например, здесь ), но каковы варианты, которые могут сделать приложение Swing на стороне клиента действительно лучше?
Я должен отметить, что одна из вещей, которая действительно раздражает меня в клиентских java-приложениях, - это большая задержка в сборке мусора "остановить мир". В Intelli-J IDEA я видел, как он шел три минуты или больше.
РЕДАКТИРОВАТЬ: Спасибо за все ответы. Просто чтобы отчитаться, я включил сборщик мусора CMS для IDEA (который является хорошим общим справочным материалом о типе приложения, с которым знакомо большинство читателей этого вопроса), используя настройку, предложенную из здесь . Я также установил -XX: + StringCache, чтобы увидеть, уменьшит ли это требования к памяти.
В общем, наблюдение состоит в том, что обычная производительность бега не ухудшается до такой степени, что вы можете заметить, глядя на нее. Сокращение памяти составляет огромное с использованием параметра String Cache, однако метод CMS не является исчерпывающим и в итоге требует остановки цикла сбора мусора в мире (обратно к трехминутному ожиданию) для очистки памяти (400 МБ за один проход).
Однако, учитывая уменьшенный объем памяти, я мог бы просто разместить меньший максимальный объем памяти, что уменьшит размеры коллекций мира.
IDEA 8.1.4 поставляется с JDK 1.6.0_12, поэтому я еще не тестировал G1. Кроме того, моя машина имеет только 2 ядра, поэтому подход G1 не будет максимально эффективным. Время побить босса за лучшую машину;).