java indexof源码_java-哪个字符串方法:“包含”或“ indexOf> -1”?

我认为我将对这个问题采用经验方法,而不是猜测附加方法调用的开销将如何影响结果。 我从此答案中获取了indexOf基准,并为contains()添加了两种基准方法(一种采用字符串常量,另一种采用变量)。 我正在使用Windows x64上刚发布的1.8.0_71。

# JMH 1.11.3 (released 8 days ago)

# VM version: JDK 1.8.0_71, VM 25.71-b15

Benchmark Mode Cnt Score Error Units

IndexOfTest.containsString avgt 30 26.596 ± 0.099 ns/op

IndexOfTest.containsStringIndirect avgt 30 28.683 ± 0.088 ns/op

IndexOfTest.indexOfChar avgt 30 26.855 ± 0.171 ns/op

IndexOfTest.indexOfCharIndirect avgt 30 25.833 ± 0.116 ns/op

IndexOfTest.indexOfString avgt 30 26.192 ± 0.107 ns/op

IndexOfTest.indexOfStringIndirect avgt 30 27.547 ± 0.152 ns/op

请注意,基准测量值是每次操作纳秒。 因此,将contains(“ z”)与indexOf(“ z”)进行比较,indexOf()的速度要稍快一些,但不到0.6ns。 有趣的是,间接变量(使用变量)的差异较大,超过1ns。

我已将此基准的代码放置在GitHub上:[https://github.com/tedyoung/indexof-contains-benchmark]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值