Misc #10233
closediseq.cのget_line_info()でバイナリサーチを使うように修正するか
Description
以下のPullRequestを投げさせていただきました。
https://github.com/ruby/ruby/pull/712
TODOコメントがあって気になったのでその通りの修正をとりあえず作ってみた形です。
ただむしろlinear searchのままにしておいて、コメントを
「ここは主にエラーハンドリングやデバッグに利用される部分でシンプルに保ちたいのでlinear searchを使っている」
という形に修正するべきかもしれない。とも思って迷っており、やはり辞めるべきかレビューを頂きたいです。
Files
Updated by ko1 (Koichi Sasada) almost 10 years ago
ありがとうございます。
性能評価みたいなことって出来ますか?
(短いと、実は、線形サーチのほうが速かったりして)
Updated by nobu (Nobuyoshi Nakada) almost 10 years ago
とりあえずインデントは揃えてください。
Updated by shiracha (Rikyu Shiracha) almost 10 years ago
- File benchmark_short.rb benchmark_short.rb added
- File benchmark_long.rb benchmark_long.rb added
- File benchmark_log.txt benchmark_log.txt added
Koichi Sasada wrote:
ありがとうございます。
性能評価みたいなことって出来ますか?
(短いと、実は、線形サーチのほうが速かったりして)
これでよいかちょっとわからないのですが、一応とってみました。
添付のbenchmark_short/long.rbをパッチとパッチを当てる直前のコミットで比較してあります。
結果がbenchmark_log.txtです。
内容としては例外が主な用途だろうということでその場合の動作で見ています。
特に有意差はなさそうな感じですね。。。複雑になるだけかもしれない。
Nobuyoshi Nakada wrote:
とりあえずインデントは揃えてください。
すいません!ammendコミットをforce pushして直しておきました。
(最初はタブとスペースが混ざったとても変わったフォーマッティングだと思ってそのままの見た目にしたがってしまったんですが、
改めて読むと4spaceでインデント合わせしてるけどtabstopは8で、コード頭のほうのスペースが8になったらタブに置き換えるスタイルだったんですね...
vimでいうと noexpandtab tabstop=8。)
Updated by k0kubun (Takashi Kokubun) over 5 years ago
- Status changed from Open to Closed
たまたまGitHubで見かけて、現状のtrunkには適用できない状態になっていたので、closeします。
Updated by mame (Yusuke Endoh) over 5 years ago
このチケットを全く知りませんでした(すみません)が、2.5 で二分探索にしました。さらにその後 2.6 では簡潔ビットベクトルで O(1) にしました。