Técnicas para causar consistente GC Churn

Eu estou olhando para benchmark como algo executa enquanto lutando com uma grande quantidade de coleta de lixo em andamento. Anteriormente, apresentei como ela se comporta em uma execução estável e de encadeamento único, e agora gostaria de fazer os mesmos testes em uma JVM mais estressada; essencialmente eu gostaria de ter threads de fundo criando e destruindo objetos em um ritmo razoavelmente consistente.

Estou à procura de sugestões sobre como implementar uma operação estável, mas com uso intensivo de GC. Precisa realizar vários objetivos:

Gastar uma quantia decente (digamos, 20-50%) de tempo no GCFaça uma quantidade de trabalho aproximadamente consistente ao longo do tempo e crie uma quantidade de trabalho similarmente consistente para o GCEvite inundar o heap e acionar umJava heap space erroEvite sobrecarregar o GC e acionar umGC overhead limit exceeded erro

questionAnswers(1)

yourAnswerToTheQuestion