我有一个大约10,000个字符串和整数的数组,我想序列化到Rails网页。最终的目标是将数组放入JavaScript数组中,但我很高兴将它作为文本blob,然后我解析客户端。
我无法缓存字符串,值会更改每个请求。
我的VPS需要大约25ms:
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
是快速的,这是一个很好的方法。我被抛弃了因为Rails环境中的to_json
被覆盖了。请改用JSON.generate(arr)
。
答案 0 :(得分:6)
随着阵列变长,JSON会更快。在我使用["ABCD", 1] * n
进行测试时,大约n < 50
时,to_s
更快,但n > 50
时,to_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