[FastMethod] ist ein Werkzeug zum schnellen, dynamischen Aufrufen von Methoden. [FastMethod] ist aus dem [Intersult Maven Repository] zu beziehen.

!!!Hintergrund
Der Aufruf von Methoden durch die [Java] Reflection API mittels der Methode java.lang.reflect.Method.invoke(...) führt zu Zeitverlust. Daher wurde [FastMethod] entwickelt, damit werden dynamische Methodenaufrufe ebenso schnell wie statische aufrufe. Voraussetzung ist, dass die Methode häufig aufgerufen wird.

!!!Beispiel
Es werden zwei im Grunde gleiche Code-Abschnitte verglichen, der eine mit Method, der andere mit FastMethod:

{{{
	public static final long N = 10000000000L;
	
	public void testFastMethod() throws Exception {
		FastMethod method = FastMethod.create(FastMethodTest.class, "someMethod");
		method.invoke(this);
		long begin = System.nanoTime();
		for (long i = 0; i < N; ++i) {
			method.invoke(this);
		}
		long duration = System.nanoTime() - begin;
		System.out.println("FastMethod: " + duration / 1000000000D + " s");
	}
	
	public void testMethod() throws Exception {
		Method method = FastMethodTest.class.getDeclaredMethod("someMethod");
		method.invoke(this);
		long begin = System.nanoTime();
		for (long i = 0; i < 10000000000L; ++i) {
			method.invoke(this);
		}
		long duration = System.nanoTime() - begin;
		System.out.println("Method: " + duration / 1000000000D + " s");
	}
}}}

Ergebnis ist eine Beschleunigung um etwa den Faktor 16:

{{{
Method: 100.797758873 s
FastMethod: 6.42633348 s
}}}