Java8 Lambda Performance vs. öffentliche Funktionen
Ich habe ein bisschen mit Lambda-Leistung unter Verwendung von Java8 VS eine Demo getestet. Öffentliche Java8-Funktionen.
Der Fall ist wie folgt:
Ich habe eine Liste mit 10 Personen (5 Männer und 5 Frauen).
Ich würde gerne wissen, welche Frau zwischen 18 und 25 Jahre alt ist
Nun, wenn ich diese Schritte millionenfach durchführe, wären die Ergebnisse:
Lambda mit ForEach dauerte: 395 ms (396 ms mit JUnit)
Public Funktionen dauerten: 173 ms (169 ms mit JUnit)
Lambda with Collect dauerte: 334 ms (335 ms mit JUnit)
Jetzt habe ich nicht damit gerechnet, dass die Ausführungszeit von Lambda doppelt bis sechsmal länger ist als bei normalen Funktionen.
So, jetzt frage ich mich ziemlich, ob ich hier etwas verpasst habe.
Die Quelle finden Sie hier:pastebin.com/BJBk4Tu6
Nachverfolgen
Wenn die Liste auf 1.000.000 Elemente erweitert wirdund alle jungen erwachsenen Frau einmal filternDie Ergebnisse wären:
Lambda with ForEach dauerte: 59 ms
Public Funktionen dauerten: 15 ms
Lambda with Collect dauerte: 12 ms
Wenn ich jedoch versuche, dieselbe Liste mit 1.000.000 Personen 100-mal zu filtern, sind die Ergebnisse:
Lambda with ForEach dauerte: 227 ms
Public Funktionen dauerten: 134 ms
Lambda with Collect dauerte: 172 ms
Als letztes Fazit: Lambdas sind schneller beim Filtern größerer Listen, während öffentliche Funktionen beim Filtern kleinerer Listen schneller sind (auf die alte Art und Weise).
Auch öffentliche Funktionen sind schneller, wenn es darum geht, Listen mehrfach zu filtern, zu welchem Zweck auch immer Sie das benötigen.
Neuester Code:pastebin.com/LcVhgnYv