Система перевернутого индекса с использованием Python

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

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

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

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

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

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

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

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

2 ответа

Решение

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

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

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

Помните

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

Другие вопросы по тегам