アニメのことを書かないとブログのネタがないな。
以前、ある(オープンソースの)プログラムを作ったときに、有名なライブラリを使用して作ったのである。
しかし、ある特殊な環境ではそのライブラリが使用できないということが分かった(利用者からの報告があった。その時点での話で今はその環境自体がない)。
仕方がないので、gmp(gnu mp)を使ってそのライブラリの機能を使っている部分を書き直したのである。
(もとのライブラリを使うバージョンはそのまま残して、gmpを使うバージョンを別に作ったということね)
使っている機能はほんの一部だけだったので、面倒だったけどなんとか書き直せたし、テストは元のライブラリとの比較だからまあなんとかなったんだけど、一つの関数だけが特に遅くなってしまったのである。十倍くらい遅くなった。まあ、動くか動かないかという問題だったので遅くてもそのままにしてしまったのだが。(書き直し自体は成功したが速度が遅くなったということ)
それがその後ずっと頭の片隅で気になっていて、もちろん元のライブラリのソースを読もうとしたりもしたのだが、チンプンカンプンだった。
で、昨日風呂に入っているときに、その遅い関数の高速化の方法を思いついたのである。たぶんこれでいいはずだというかなり強い確信があるのだが、今から作り直してももう使う人いないし、意味がないんだよなぁ。でも、本当に高速化するのか確認したいという気持ちもある。
悩ましい。
実際に試してみたら、全然高速化しないってこともよくあるんだけどね。それを確認するためにもプログラムを組んでみたいのだが、もうかなり忘れてるから、プログラミングと動作テストと速度テストまでやるとなると相当手間がかかるんだなぁ。年だし。それだけ手間かけて、仮に高速化したとしても、誰が使うという訳でもないし。