Dun*_*gor 16 java performance guava java-8
我对Java 8上的Guava感到非常满意 - 在向Streams迁移顺序代码时是否有任何性能优势或陷阱?
我已经在 GitHub 上启动了一个项目来解决这个问题。
Streams 的初步结果令人惊讶地积极 - 对于字符串上的身份映射,2014 MacBookAir 1.7Ghz i7 上的 Java HotSpot(TM) 64 位服务器 VM(内部版本 25.25-b02,混合模式),代码版本https://github.com /dmcg/iterables-v-streams#ea8498ee0627fc59834001a837fa92fba4bcf47ebcf47e
实验选择:
基准方法:[番石榴、迭代、流]
工具:[分配、运行时]
用户参数:{}
虚拟机:[默认]
选择类型:完全笛卡尔积
该选择产生 6 个实验。
试验报告(6 中的 1):
实验{仪器=分配,基准方法=迭代,vm=默认,参数={}}
结果:
字节(B):最小值=4072.00,第一部分=4072.00,中位数=4072.00,平均值=4072.00,第三部分=4072.00,最大值=4072.00
对象:最小值=3.00,第一部分=3.00,中位数=3.00,平均值=3.00,第三部分=3.00,最大值=3.00
试验报告(6 之 2):
实验{仪器=分配,基准方法=番石榴,vm=默认,参数={}}
结果:
字节(B):最小值=15104.00,第一部分=15104.00,中位数=15104.00,平均值=15104.00,第三部分=15104.00,最大值=15104.00
对象:最小值 = 17.00,第一季度 = 17.00,中位数 = 17.00,平均值 = 17.00,第三季度 = 17.00,最大值 = 17.00
试用报告(第 3 篇,共 6 篇):
实验{仪器=分配,基准方法=流,vm=默认,参数={}}
结果:
字节(B):最小值=15272.00,第一部分=15272.00,中位数=15272.00,平均值=15527.64,第三部分=15432.00,最大值=17252.80
对象:最小值=20.00,第一季度=20.00,中位数=20.00,平均值=25.00,第三季度=26.00,最大值=53.00
试用报告(第 4 部分,共 6 部分):
实验{仪器=运行时,基准方法=番石榴,vm=默认,参数={}}
结果:
运行时间(ns):最小值=13365.32,第一部分=13660.61,中位数=13802.51,平均值=13961.91,第三部分=14445.46,最大值=14715.34
试用报告(第 5 部分,共 6 部分):
实验{仪器=运行时,基准方法=迭代,vm=默认,参数={}}
结果:
运行时间(ns):最小值=9952.47,第一部分=10892.64,中位数=11372.35,平均值=11243.07,第三部分=11785.48,最大值=12024.76
试用报告(6 之 6):
实验 {instrument=runtime、 benchmarkMethod=streams、vm=default、parameters={}}
结果:
运行时间(ns):最小值=10527.26,第一部分=11051.70,中位数=11747.29,平均值=11631.15,第三部分=12205.97,最大值=12581.39
收集了 81 个测量值:
2 台仪器
2 个虚拟机
3 个基准
执行完成:1.188 分钟
结果已上传。查看它们:https://microbenchmarks.appspot.com/runs/d2c7f83b-2cfa-4217-ab0b-e8d506eaa85c
我仍在研究 Google 卡尺,但这似乎表明 Streams 比 Guava 更快,并且比直接 for 循环慢不了多少。
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |