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 filtern

Die 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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage