恕我直言你可能真的不会java第6篇:Stream性能差?不要人云亦云
一、粉丝的反馈 问:stream比for循环慢5倍,用这个是为了啥? 答:互联网是一个新闻泛滥的时代,三人成虎,以假乱真的事情时候发生。作为一个技术开发者,要自己去动手去做,不要人云亦云。 的确,这位粉丝说的这篇文章我也看过,我就不贴地址了,也没必要给他带流量。怎么说呢?就是一个不懂得测试的、不入流开发工程师做的性能测试,给出了一个危言耸听的结论。 二、所有性能测试结论都是片面的 性能测试是必要的,但针对性能测试的结果,永远要持怀疑态度。为什么这么说? 性能测试脱离业务场景就是片面的性能测试。你能覆盖所有的业务场景么? 性能测试脱离硬件环境就是片面的性能测试。你能覆盖所有的硬件环境么? 性能测试脱离开发人员的知识面就是片面的性能测试。你能覆盖各种开发人员奇奇怪怪的代码么? 所以,我从来不相信网上的任何性能测试的文章。凡是我自己的从事的业务场景,我都要在接近生产环境的机器上自己测试一遍。 所有性能测试结论都是片面的,只有你生产环境下的运行结果才是真的。 三、动手测试Stream的性能 3.1.环境 windows10 、16G内存、i7-7700HQ 2.8HZ 、64位操作系统、JDK 1.8.0_171 3.2.测试用例与测试结论 我们在上一节,已经讲过: 针对不同的数据结构,Stream流的执行效率是不一样的 针对不同的数据源,Stream流的执行效率也是不一样的