2012-02-26 6 views
2

私はPythonを使用して逆索引を作成しています。Pythonを使用した逆索引システム

私に提供できるパフォーマンスに関して疑問があります。

Pythonは、JavaまたはCとほとんど同じくらいインデックス付けが速いですか?

また、私は、モジュール/実装が存在するかどうかを知りたいと思います(それらは何ですか、いくつかのリンクはどうですか?)?Java/Cで開発されたものと比べて、

私はサイコと一緒に使って、彼のPythonをCの2倍の速さで最適化したこの人について読んだ。

gcc 3.xコンパイラは超高速のようなので、これは誤解を招くという事実を知っています。基本的に、私の主張は、PythonがCより高速ではないことを知っていることです。しかし、それは幾分匹敵しますか? 誰かがJavaと比較してそのパフォーマンスについていくらか光を当てることができますか?私はそれについての手がかりがありません。 (本質的にディスクの書き込みと読み取りが必要となるため、可能であれば、逆インデックス実装については、

私はここでまずはグーグルではなく質問していません。私は明確な答えを得ていませんでした。

ご協力いただきありがとうございます。

答えて

3

(当然のスレッド後)[ディスクアクセスが!]

の場合情報をインデックス化するのに役立つ既存の実装がいくつか必要です。PyLucene

+0

本当に本当です。しかし、JavaがPythonよりも速いIOを持つケースはありますか? (Cは明らかにそうです。)はい/いいえの場合は、どのレベルですか? PyLuceneはJavaバージョンのラッパーだけではありませんか? IOは本質的にJava部分によって引き続き実行されています。ではない? –

+0

@Sylar:IOは特定の実装であり、実装言語AFAIKにはるかに多くのOSとハードウェアに依存しています。そしてもちろん、PyLuceneは元のルシェンのラッパーだけです。非常に具体的なものが必要な場合を除いて、私は可能な限り使用し、開発時間を短縮し、luceneはバグフリーであり、多くのユーザーが – amit

+0

非常に参考になりました。ありがとうございました。 :) –

4

事実後の最適化について心配です。コードを書く、プロファイルする、ストレステストする、遅い部分を特定してCythonやCでオフセットする、コードを書き直して効率的にする、PythonにロードするとJITコンパイラを持つ方が速いかもしれない長時間実行されているプロセスやループで役に立ちます。

早期の最適化を覚えて、諸悪の根源です。ボトルネックはIO通常があるので、私は、あなたが転置インデックスのための言語間のくらい違いを確認することが期待されているとは思わない

+0

最適化の心配はありません、Knuth;) 私はちょうどそれがどれくらいうまくいくのか不思議ですJavaやCに対して実行してください。私はとにかくそれをやろうとしています。純粋な好奇心から尋ねた! –

関連する問題