0

Rails Web ページにシリアライズしたい ~10,000 個の文字列と整数の配列があります。最終的な目標は、配列を 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_jsonRails環境ではオーバーライドされているため、私はうんざりしていました。JSON.generate(arr)代わりに使用してください。

4

1 に答える 1

6

JSON は、配列が長くなるほど高速になります。でテストしたよう["ABCD", 1] * nに、 approxn < 50の場合to_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 に答える