寝る前に見つけたサンプル「XMLPerformance」が、結構有用っぽいです。
libxml2 を使った場合と NSXMLParser を使った場合の XML のパース速度の比較を行うサンプルなのですが(ちなみに結論としては libxml2 の方が3倍くらい速い)、libxml2 を使うと、インターネット上のデータを一部ずつダウンロードする度に、部分部分のパースができる、というのを初めて知りました(Push Mode による Chunk ごとのパースというらしい)。これだと、ダウンロードとパースが並行して行えるので、体感速度もバッテリライフもかなり向上するはず。
で、libxml2 が使えるならと思ってヘッダファイルなどを確認すると、たしかに
..../iPhoneOS2.2.sdk/usr/lib/libxml2.dylib
があって、
..../iPhoneOS2.2.sdk/usr/include/libxml2/libxml/HTMLparser.h
もあるんですね(当然のことですが)。htmlCreatePushParserCtxt() 〜 htmlParseChunk() 〜 htmlFreeParserCtxt() で、HTML のパースもちゃんと Push Mode でできるようになっています。
コメントを書く