【问题标题】:Performance of two arrays comparison in rubyruby 中两个数组比较的性能
【发布时间】:2018-04-07 02:36:10
【问题描述】:

我有 2 个数组:

arr1 = [1,2,3,4]
arr2 = [1,2, 82, 167,3,79,4]

我会使用Array#- 来获得如下差异:

arr1 - arr2
#=> [82,167,79]

假设现在我有一万个元素数组。如何衡量Array#- 的性能?有没有其他方法可以比较?

【问题讨论】:

  • 他们是对的。这不是为了让别人做你的工作,而是为了提出和回答知识问题。
  • 你检查过this的问题吗?
  • 我不是要求人们在这里做我的工作。我正在寻求确切的知识,来自社区的成熟技术以及有经验的人遇到的任何缺点。这将对我的工作有所帮助..
  • 问的一种方式是:“Array#- 性能好吗?”。另一种提问方式是:“我如何衡量方法的性能?”.
  • @Stefan 够公平的。我已经编辑了问题

标签: ruby comparison detection


【解决方案1】:

您应该使用标准库中内置的 ruby​​ Benchmark:

require 'benchmark'

a = [*1..10000]
b = [*35..11000]

puts Benchmark.measure{ a - b }

# output on my system shown 
#0.000000   0.000000   0.000000 (  0.002996)

Benchmark.measure{ a - b }
=> #<Benchmark::Tms:0x00007fe2fa8bad28 @label="", @real=0.003237861965317279, @cstime=0.0, @cutime=0.0, @stime=0.0, @utime=0.0, @total=0.0>

欲了解更多信息,请参阅https://ruby-doc.org/stdlib-2.5.0/libdoc/benchmark/rdoc/Benchmark.html

【讨论】:

  • 反引号和分号?
  • @Stefan backtics 是错字,已修复。分号是因为我在 pry session 中运行并且不想看到返回的对象,因为它只是一大堆数字。我删除了它们,但它们并没有破坏任何东西。
  • @lacostenycoder 我发现您的回答很有帮助,并在我了解基准课程时投了赞成票。我不知道为什么人们反应过度,投反对票那么快..
猜你喜欢
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2021-04-29
  • 2019-06-02
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多