Variablen Variablen voneinander abhängig

Wie gesagt - in Ausnahmefällen kann es durchaus einen größeren Unterschied machen.
Es ist aber nicht so, das der Unterschied während der Laufzeit zwischen gleich und 15mal langsamer schwankt, wie du es aus deinem Test geschlossen hast.
Also am Ende sind wir derselben Meinung🙂. Es kommt auf den Kontext an.
Hier mein Benchmark mit Nanoauflösung. Du hast Recht gibt eine genauere Lösung.
Man sieht von Start weg, dass hier nicht konstant schneller ist x 1. Aber die Ausreiser finden nicht mehr statt.
Es pendelt sich aber dann bei x2 ( 200%) ein.

upload_2018-1-23_18-11-28.png
 
Also am Ende sind wir derselben Meinung🙂. Es kommt auf den Kontext an.
Hier mein Benchmark mit Nanoauflösung. Du hast Recht gibt eine genauere Lösung.
Man sieht von Start weg, dass hier nicht konstant schneller ist x 1. Aber die Ausreiser finden nicht mehr statt.
Es pendelt sich aber dann bei x2 ( 200%) ein.
In diesem Kontext (stumpfe Schleife) sorgt übrigens nur der Kontext in Verbindung mit dem Hotspot-Compiler dafür, dass es langsamer ist 😉 Wären es gleich viele Aufrufe, aber statt in einer Schliefe "ausgerollt", wäre es ziemlich gleich schnell.

Schleife mit 1_000_000 Durchläufen mit aktiviertem Graal-Compiler:
Code:
Benchmark               Mode  Cnt        Score       Error  Units
VecBenchmark.immutable  avgt   10  1239197.342 ± 75675.124  ns/op
VecBenchmark.mutable    avgt   10  1237968.090 ± 97257.154  ns/op
 
Bauen lassen sich afaik alle seit 8 damit, seit 9 ist's zumindest im Linux-Binary enthalten und ab 10 sollte es in allen enthalten sein.
Offiziell ist der noch Experimentell, nutzbar ist er aber schon (und wie man sieht auch ziemlich gut) und dürfte auch für die Weiterentwicklung und Drittprojekte deutlich interessanter sein, als der "normale" Compiler.

In vielen Fällen erreicht aber der normale Compiler schon ähnliches, nur halt in solchen Fällen nicht (aufgrund simplerer Escape-Analysis).
 

Neue Themen


Zurück
Oben