Utilice una de las opciones:
-Dsun.reflect.inflationThreshold=30
Aumenta el número de llamadas a través de un constructor/Método/Campo antes de un descriptor de acceso nativo será "inflada" a un descriptor de acceso generada. El valor predeterminado es 15.
-Dsun.reflect.inflationThreshold=0
Desactiva la inflación por completo. Curiosamente, esta opción no parece afectar a los constructores, pero funciona para los métodos.
Puede probar las opciones con una sencilla aplicación de prueba:
public class a {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 20; i++) {
a.class.getDeclaredConstructor(null).newInstance(null);
}
}
private static int x;
public a() {
new Throwable("" + x++).printStackTrace();
}
}
Editar (29-Dec-2013): La opción -Dsun.reflect.noInflation=true
desactiva el mecanismo de inflado y en su lugar inmediatamente utiliza descriptores de acceso generada, por lo que don no quiero esa opción
¿Por qué está etiquetado gcc (Gnu Compiler Collection)? ¿Quisiste etiquetarlo gc (recolector de basura)? ¿Estás usando gcj (compilador Gnu para Java)? –
Creo que fue un error tipográfico, lo cambio a 'gc' – OscarRyz