[PATCH] Add LibXML support to Active Resource

http://dev.rubyonrails.org/ticket/9017
速度面が少し気になったので、LibXMLを使うパッチを充ててみた。

n.times {
  Image.find(:all, :query => 'さくら 壁紙', :results => 10)
}


user system total real
default (1 times): 0.125000 0.031000 0.156000 ( 0.704000)
libxml (1 times): 0.000000 0.016000 0.016000 ( 0.515000)
default (100 times): 11.266000 0.266000 11.532000 ( 61.547000)
libxml (100 times): 0.359000 0.047000 0.406000 ( 49.828000)

速くはなったけどrealにそれほどの差はないなー。
戻ってくる結果もビミョーに異なるし*1、どうするかな。


追記
Windowsで測定したけど、Linuxでは違う結果になるかも。
戻り値に差異があるのは↓のパッチのせいかも。

*1:scopeを:allにすると、defaultは単一のオプジェクト、libxmlは配列が返ってくる。defaultがrootからのDOMツリーを返しているのに対して、libxmlは繰り返しを見つけて配列に変換するみたい