以下内容为个人亲自执行结果,编写只为记录与分享,若有不同可直接留言,共同交流,共同进步!后续会不断完善!
测试环境
- win10 4核20G
- jdk1.8.0_231
- IDEA2019.3
分别执行10条, 100条, 100条, 1000条, 10000条, 100000条, 1000000条数据测试结果分析
- 执行循环内容时间较长, 超过1s左右时, 使用parallelSteam效率最高
parallelSteam是并行,
并行,指的是在同一时刻多个任务同时执行。
并发,指的是在同一时间段多个任务交替执行。
当然,并行的执行速度更快,但并行也依赖硬件设置,因为它依赖硬件CPU是多核的场景。并发则不受限制。 - forEach()不管是循环内容时间长短消耗时间都是最长的, 在内容执行时间短时,执行所消耗是其他方法的5-20倍, 在消耗时间超过1s时, 随着执行条数增加消耗时间缩短, 在1000条以上时与其他方法消耗时间持平
- Stream为串行流,执行效率上比for要差一些, 是以时间换空间
执行内容时间短时, 效率对比, for >= for迭代器>stream>parallelSteam>forEach
执行内容时间长时, 效率对比, parallelSteam>for >= for迭代器>stream>forEach - 集合中拿取数据时, 通过Stream方式多次获取与for循环一次组装效率对比, for循环效率更高!