我知道,有类似的问题和答案,我只是因为事实让我感到惊讶。 我是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,但意味着秒