Система перевернутого индекса с использованием 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-компилятор, это может помочь с длительными процессами и циклами.
Помните
Преждевременная оптимизация, это корень всего зла. (После темы конечно)