我已经使用Java8 VS对lambda性能进行了一些演示测试.Java8公共功能.
案例如下:
我有一个10人(5男5女)的名单.
我想知道哪个女人的年龄在18到25岁之间
现在,当我执行这些步骤数百万次时,结果将是:
使用ForEach的Lambda:395毫秒(使用JUnit时为396毫秒)
公共函数采用:173毫秒(使用JUnit时为169毫秒)
Lambda with Collect花费了334毫秒(使用JUnit时为335毫秒)
现在我没想到lambda的执行时间比普通函数长两倍到六倍.
所以,现在我非常想知道我是否错过了这里的一些东西.
来源可以在这里找到: pastebin.com/BJBk4Tu6
跟进:
结果将是:
与ForEach一起使用的Lambda:59毫秒
公共职能采取:15毫秒
Lambda with Collect:12毫秒
但是,当我尝试过滤100,000次现有的1.000.000人时,结果将是:
使用ForEach的Lambda:227毫秒
公共职能:134毫秒
带收集的Lambda:172毫秒
因此,作为最终结论:Lambdas在过滤较大列表时更快,而公共函数(旧方法)在过滤较小列表时更快.
此外,在过滤任何列表时,公共功能更快,无论出于何种目的,您都需要这样做.
最新代码: pastebin.com/LcVhgnYv