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でも問題なしだな…。