Как оптимизировать операции с большими (75 000 элементов) наборами логических значений в Python?

There ' Этот сценарий называется svnmerge.py , который я пытаюсь немного настроить и оптимизировать. Я совершенно новичок в Python, так что это непросто.

Текущая проблема, похоже, связана с классом под названием RevisionSet в скрипте. По сути, он создает большую хеш-таблицу (?) Логических значений с целочисленными ключами. В худшем случае - по одной на каждую ревизию в нашем репозитории SVN, а сейчас их около 75 000.

После этого он выполняет множество операций над такими огромными массивами - сложение, вычитание, пересечение и так далее. Это простейшая реализация O (n), которая, естественно, работает довольно медленно на таких больших наборах. Всю структуру данных можно оптимизировать, поскольку существуют длинные интервалы непрерывных значений. Например, все ключи от 1 до 74 000 могут содержать true . Также скрипт написан для Python 2.2, довольно старой версии, и мы все равно используем 2.6, так что там тоже есть что выиграть.

Я мог бы попытаться собрать это вместе, но это будет сложно и занимает много времени - не говоря уже о том, что это может быть где-то уже реализовано. Хотелось бы получить опыт обучения, но сейчас важнее результат. Что вы посоветуете мне сделать?

9
задан Community 22 September 2017 в 17:44
поделиться