... bei der Benchmark ist nicht klar was sie eigentlich misst, da sie initialisierung und caching nicht korrekt abbildet. folgende Punkte würde ich ändern:
- die Schleife zweimal laufen lassen und nur die 2. Messung nehmen (damit sind die Initialisierungen sicher weg.
- statt fixe Werte random Werte potenzieren und zwar für alle 3 Varianten dieselben (gegen cahing Effekte)
- damit man nicht die random Funktion misst, in der Initialisierung ein Array mit random Werten füllen, anschließend darüber die Schleife jeweils mit allen 3 Methoden (damit dieselben Berechnungen gemacht werden mussen).
- letztlich noch die Reihenfolge der 3 Berechnungsmethoden variieren, um auszuschließen, dass einer den anderen schon konditioniert.
Das Ganze natürlich am Besten bei unbelasteter Maschine.

D*B