■
XMLMarkでMonoのXMLパフォーマンステストをしてくれたとゆー人がいて、Sun JDKとMS.NETと並べられて比較されているのはそれはそれですげー光景なのだけど、遅いままっていうのも何なので、ちょこっとずつ最適化を始めることにした。
で、しばらくはてなグラフで記録しているのだけど、いまいちニーズに合わないので、Miguelが昔移植したNPlotを使ってみようかなあと思っている。mono-listにも投げたけど、とりあえず0.9.9をGtkに移植してみた。
http://monkey.workarea.jp/tmp/2006/NPlot-0.9.9-Gtk.tar.bz2
実際にはXMLの最適化以前にEncodingの最適化というか作り直しを先にやることになるだろう。UTF8のGetCharsとか、MSの5倍くらい遅いし。昨日は6倍だった。いや、いま3倍くらいで、昨日はたぶん4倍くらいだった。
mono --profileの結果を眺めると、クラスライブラリのどこを最適化すれば良いかがだいたい分かる。メモリの最適化だと、テスト環境で大して速度のブレに拘らなくても良いが、XmlTextReaderやDOMについては、既にメモリ消費の最適化がだいぶ行われているので面倒だ。まあ既に先週より1.5倍弱速いのだけど。
ちなみに最初はFirefox 1.5専用のCanvasGraphを使おうと思っていたのだけど、出来上がったものがいまいちだったのでやめた。