美文网首页
更快的Finder

更快的Finder

作者: mixbo | 来源:发表于2018-01-11 22:41 被阅读0次

    最近在网上看到篇Blog其中讲到,Ruby怎么在大数组中快速找到的第一匹配的元素。
    同时对一个超大数组进行测试,分别用findbsearch 来找第一个元素.

    require 'benchmark'
    
    data = (0..50_000_000)
    
    Benchmark.bm do |x|
      x.report(:find) { data.find {|number| number > 40_000_000 } }
      x.report(:bsearch) { data.bsearch {|number| number > 40_000_000 } }
    end
    
             user       system     total       real
    find     3.020000   0.010000   3.030000   (3.028417)
    bsearch  0.000000   0.000000   0.000000   (0.000006)
    
    

    注意:这里的bsearch方法一般用于一个经过排序后的数组。

    参考: five-ruby-methods-you-should-be-using

    相关文章

      网友评论

          本文标题:更快的Finder

          本文链接:https://www.haomeiwen.com/subject/vtfxoxtx.html