空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

JSONの罠?

JSONが気に入ってけっこう重めのデータ(〜200KB)を転送するようなコードを書いてみたが,1日遊んで気付いたのは

  • Firefox の eval は遅い。XML のパースよりも遅い。
  • Safari の eval は速い。たぶん XML のパースよりも速い。
  • 200KB 程度の JSON を使ったベンチマーク(CGIの実行時間,レンダリングも含む)をとって見たら,Safari のほうが3倍近く速くなった。
  • Ruby の to_json を使ったやり方は,いわゆるDOM的な書き出し方で,書き込む前にメモリ上にオブジェクトを作らなければならない。そうかといってJSONフォーマットをストリームに生書きするのはそれはそれで苦痛。書き出す側からすると,XMLの方が便利か。

XMLを使ってた頃はむしろFirefoxの方が速いと感じていたので,速度の違いは意外。本日体感したAjaxのパフォーマンスは

slow --  Firefox(JSON)  <<  Safari(XML)  <  Firefox(XML)  <<  Safari(JSON)  -- fast

って感じ。ちょっとSafariを見直した。Firefoxはもう少し頑張って欲しい。ん?そういえば Windows版Safariってのもあったな。そうかWindowsでも問題なしだな…。