Dictionary を使ったグラフを使用した方が早いかもしれない.
こちらの開発環境では, 以下の結果が出ている.
- ビット演算による計算 : 10万塩基での計算で 0.165 ~ 0.210 sec
- グラフ(元の塩基を key, 相補塩基を value にしたハッシュマップ)による計算 : 10万塩基での計算でおよそ 0.104 sec
おそらく, Dictionary を使用するとメモリ消費を犠牲に計算が高速になっていると考えられる. また, Dictionary には全ての複合塩基を変換するのは難しいというデメリットがあることもわかった(ビット演算はいかなる複合塩基も同じようにビット回転させるだけなので一つの関数だけですむ).
Dictionary を使ったグラフを使用した方が早いかもしれない.
こちらの開発環境では, 以下の結果が出ている.
おそらく, Dictionary を使用するとメモリ消費を犠牲に計算が高速になっていると考えられる. また, Dictionary には全ての複合塩基を変換するのは難しいというデメリットがあることもわかった(ビット演算はいかなる複合塩基も同じようにビット回転させるだけなので一つの関数だけですむ).