2010-12-11 15 views
1

TSVファイルに格納されている89バイト/レコードの32000レコードがあるとします。Pythonアルゴリズムの効率

これをPython辞書またはRubyハッシュにスティックし、それ自体が各レコードのフィールドである9バイトのキーでインデックスを作成します。言い換えれば、32000のキーと値のペアを持つ辞書があります。各キーは9バイトで、各値は89バイトです。 2.4Ghz MacBook Proのような最新のコンピュータでは、レコードを取得するのに要する平均時間はどのくらいかと推測されます。シータ表記法では最悪のケースは何ですか? Rubyでの実装はPythonよりも遅いのですか?

+9

どのようにベンチマークするのですか? –

+4

テストを実行してみませんか?率直に言って、それはあなたが知ろうとしなければならないほど多くのものに依存しています。 – caveman

+4

コンピュータは32000のような数字で笑う。私の2歳のノートパソコンで32000のキーをハッシュすると3msかかる... –

答えて

4

辞書は、通常、一定時間内にキーを取得できますので、質問に対する回答は「非常に高速」です。

多くのキーが衝突した場合は唯一の方法ですが、良いハッシュ関数を使用することでこれを回避できます。デフォルトのハッシュ関数はおそらく問題ありません。

Rubyの実装はPythonよりも遅いのですか?

Rubyのパフォーマンスベンチマークは、通常、Pythonよりも小さな要素によって遅くなります。私はおそらくそれもここでも真実だと思います。

The Computer Language Benchmarks Game - Ruby vs Python

+0

これはメモリ内で実行するのをやめるのは意味が分かりますか? – mbm

+1

@mbm:メモリがいっぱいになったら。 –

+0

男の子は好きですか?ありがとう! – mbm

関連する問題