Ruby – Array.join vs. String Concatenation(效率)

我记得一次一次地发出一连串的Python的骂声。我被告知,在Python中创建一个Strings列表是更有效的,并在以后加入它们。我将这种做法转化为JavaScript和Ruby,尽管我不确定在后者中是否有同样的好处。

任何人都可以告诉我,如果加入一个字符串数组更有效率(资源和执行方式),并调用:连接它们,或者根据需要在Ruby编程语言中连接一个字符串?

谢谢。

使用Benchmark课程自己尝试。

require "benchmark"

n = 1000000
Benchmark.bmbm do |x|
  x.report("concatenation") do
    foo = ""
    n.times do
      foo << "foobar"
    end
  end

  x.report("using lists") do
    foo = []
    n.times do
      foo << "foobar"
    end
    string = foo.join
  end
end

这产生以下输出:

Rehearsal -------------------------------------------------
concatenation   0.300000   0.010000   0.310000 (  0.317457)
using lists     0.380000   0.050000   0.430000 (  0.442691)
---------------------------------------- total: 0.740000sec

                    user     system      total        real
concatenation   0.260000   0.010000   0.270000 (  0.309520)
using lists     0.310000   0.020000   0.330000 (  0.363102)

因此,在这种情况下,连接看起来要快一点。对您的系统进行基准测试。

http://stackoverflow.com/questions/4402336/ruby-array-join-versus-string-concatenation-efficiency

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Ruby – Array.join vs. String Concatenation(效率)