etolisp 進捗 (32) 〜 GCの改良と高速化!
徒然なるままにetolispをいじってみた。そのむかし,etolispにGC(ガーベージコレクタ)を組み込むにあたってCodeProjectでたまたま見つけたサンプルコードを参考にしたのだが,思えばこれが悪い出発点だったのかもしれない(評価は4.5ポイントと高いが…)。
まず実装がそもそも遅い。このフレームワークの特徴は,gc_ptr
これは,intやdoubleなどのあらゆる型を一般的にGC&gc_ptr
それに加えてシンボルの検索をmapからhash_mapに変更した。ただし文字列をキーにした場合場合に限っては,mapの方が高速なので,そっちを使っている。
今回は,これだけの変更。しかもガベコレ周りの変更だけだったものの,処理速度が5倍くらい速くなった。いやー,スタート地点が低かったとはいえ,この高速化は嬉しい。