0

我有一个大约 10,000 个字符串和整数的数组,我想将它们序列化到 Rails 网页中。最终目标是将数组转换为 JavaScript 数组,但我很高兴将其作为文本 blob,然后解析客户端。

我无法缓存字符串,每个请求的值都会改变。

这在我的 VPS 上大约需要 25 毫秒:

arr = ["ABCD", 1] * 10000 # always in string, number, string, number order
start = Time.now
arr.to_s
duration = (Time.now - start)*1000
puts "took #{duration}ms"

我们能做得更好吗?

编辑

@sawa 的回答是正确的,to_json速度很快,而且是一个很好的方法。我被甩掉了,因为to_json在 Rails 环境中被覆盖了。改为使用JSON.generate(arr)

4

1 回答 1

6

随着数组变长,JSON 会更快。正如我用 测试的那样["ABCD", 1] * n,当 大约时n < 50to_s速度更快,但在 时n > 50to_json速度更快。

arr = ["ABCD", 1] * 10000 # always in string, number, string, number order

start = Time.now
arr.to_s
duration = (Time.now - start)*1000
puts "took #{duration}ms"

require "json"
start = Time.now
arr.to_json
duration = (Time.now - start)*1000
puts "took #{duration}ms"

# =>
# took 7.546628ms # to_s
# took 4.684186ms # to_json
于 2012-11-29T18:32:24.957 回答