ものがたり(旧)

atsushieno.hatenablog.com に続く

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を使おうと思っていたのだけど、出来上がったものがいまいちだったのでやめた。

とりあえず作ってみたけど、Mono on WindowsだとGraphicsがぬるぽで落ちるっぽい。