测试Java Stream流 parralle与 sequential的效率
实验环境
操作系统:win10
处理器:Intel i5-4200U 2核4线程
Java版本:1.8
实验方案
统计大小为1000000、取值范围[1,100]的ArrayList中大于50小于75的值个数
对比方式
方式1:使用for循环进行统计
方式2:使用stream流中的filter进行统计(调用sequential())
方式3:使用stream流中的filter进行统计(调用parralle())
每种方式均重复运行1000次去平均用时作为实验的结果
实验结果与分析
方式 | 平均用时(ms) |
---|---|
方式1 | 86.1992 |
方式2 | 51.5976 |
方式3 | 26.8285 |
从实验结果中可以看出使用Stream流中的串行计算方式比使用for循环进行统计速度提升了40%,而使用Stream流中的并行计算方式比使用for循环进行统计快了69%
附录
测试代码地址:https://gitee.com/xuwansen/test_stream_default_sequential_parralle.git