Система перевернутого индекса с использованием Python - PullRequest
2 голосов
/ 26 февраля 2012

Я работаю над созданием инвертированного индекса с использованием Python.

У меня есть некоторые сомнения относительно производительности, которую он может мне дать.

Будет ли Python индексировать почти так же быстро, как Java или C?

Кроме того, я хотел бы знать, существуют ли какие-либо модули / реализации (и каковы они, какая-нибудь ссылка, пожалуйста?) Для того же самого и насколько хорошо они работают по сравнению с чем-то разработанным в Java / C?

Я читал об этом парне, который оптимизировал свой Python в два раза быстрее, чем C, используя его с Psyco.

Я точно знаю, что это вводит в заблуждение, поскольку компиляторы gcc 3.x похожи на супер быстрые. По сути, я хочу сказать, что я знаю, что Python не будет быстрее, чем C. Но это несколько сравнимо? А может кто-нибудь пролить свет на его производительность по сравнению с Java? Я понятия не имею об этом. (С точки зрения реализации инвертированного индекса, если возможно, потому что это по существу потребовало бы записи на диск и чтения.)

Я не спрашиваю об этом без поиска в Google. Я не получил однозначного ответа, отсюда и вопрос.

Любая помощь очень ценится!

Ответы [ 2 ]

4 голосов
/ 26 февраля 2012

Беспокойство по поводу оптимизации после свершившегося факта. Напишите код, профилируйте его, проведите стресс-тестирование, определите медленные части и сместите их в Cython или C или переписайте код, чтобы сделать его более эффективным, это может быть быстрее, если вы загрузите его в PyPy, поскольку он имеет JIT-компилятор , это может помочь с длительными процессами и циклами.

Помните

Преждевременная оптимизация, это корень всего зла. (После темы конечно)

3 голосов
/ 26 февраля 2012

Я не думаю, что вы ожидаете увидеть большое различие между языками для инвертированного индекса, так как бутылочное горлышко обычно имеет IO [доступ к диску!]

Если вы хотите немногосуществующие реализации, которые помогают вам индексировать информацию, взгляните на Apache Lucene для Java и его версию на python: PyLucene

...