JavaScript字符串连接比Ruby慢

时间:2018-02-02 21:51:46

标签: javascript ruby performance concatenation

我知道,有类似的问题和答案,我只是因为事实让我感到惊讶。 我是ruby开发人员,每天编写ruby代码,每天运行ruby程序,我一直认为它是世界上最慢​​。 不能相信Ruby至少有一个更快的操作,但这里是:

红宝石:

start = Time.now
s = ''
100000.times do |i|
  s << 's'.freeze
end
puts s.size
puts Time.now - start

2.5.0版本:0.015s,0.020ms没有freeze

2.4.1版本:0.013s

JS :(通过node.js执行)

var start = Date.now()
s = ''
for (var i = 0; i < 100000; i++) {
  s += 's'
}
console.log(s.length)
console.log((Date.now() - start) / 1000)

0.021s,数组连接速度稍慢

奖金:

local time = require('socket').gettime
local start = time()
local s = {}
for i = 1, 100000 do
  s[i] = 's'
end
print(#table.concat(s))
print(time() - start)

0.003s,比JS快7倍,没关系,这是LuaJIT。

所以,如果你正在构建模板引擎或者有数以千计的方法来使用字符串,那么使用新版本的语言速度会慢得多,这比JS更快,这让我大吃一惊。

JavaScript是否有任何连接技巧?

(编辑)我第一次写ms,但意味着秒

0 个答案:

没有答案