Rendimiento de Java8 Lambda frente a funciones públicas

He estado probando un poco con rendimiento lambda usando Java8 VS. Funciones públicas de Java8.

El caso es el siguiente:

Tengo una lista de 10 personas (5 hombres y 5 mujeres).

Me gustaría saber qué mujer tiene una edad entre 18 y 25

Ahora, cuando estoy ejecutando estos pasos un millón de veces, los resultados serían:

Lambda con ForEach tomó: 395 ms (396 ms usando JUnit)

Las funciones públicas tomaron: 173 ms (169 ms usando JUnit)

Lambda con Collect tomó: 334 ms (335 ms usando JUnit)

Ahora no esperaba que el tiempo de ejecución de lambda fuera dos veces hasta seis veces más largo que las funciones regulares.

Entonces, ahora me pregunto si me he perdido algo aquí.

La fuente se puede encontrar aquí:pastebin.com/BJBk4Tu6

Seguimiento:

Al expandir la lista a 1,000,000 artículosy filtrando a todas las mujeres adultas jóvenes una vez

Los resultados serían:

Lambda con ForEach tomó: 59 ms

Funciones públicas tomadas: 15 ms

Lambda con Collect tomó: 12 ms

Sin embargo, cuando estoy tratando de filtrar la misma lista existente de 1,000,000 de personas 100 veces, los resultados serían:

Lambda con ForEach tomó: 227 ms

Funciones públicas tomadas: 134 ms

Lambda con Collect tomó: 172 ms

Entonces, como conclusión final: las Lambdas son más rápidas cuando se trata de filtrar listas más grandes, mientras que la función pública (a la antigua usanza) es más rápida al filtrar listas más pequeñas.

Además, las funciones públicas son más rápidas cuando se trata de filtrar cualquier lista varias veces, para cualquier propósito que necesite para hacerlo.

Último código:pastebin.com/LcVhgnYv

Respuestas a la pregunta(1)

Su respuesta a la pregunta