Исходные данные:
файл .csv с данными
файл .env с настройками
Файл, который запускает скрипт
Скрипт последовательно, построчно берет данные из файла .csv. В скрипте есть две основные функции, аналогичные. Через эти две функции (не одновременно) проходят все итерации.
Сначала в одной из них последовательно происходит проверка условий: сравнение рассчитанных один раз ранее значений с данными из файла .csv, вычислительных операций не производится в этих функциях. Как только сработало условие в какой-то функции - происходит смена функции и процесс продолжается уже через другую функцию далее пока есть данные в файле .csv Между сменами основных функций выполняются ряд других мелких функций, но подавляющее большинство времени уходит на проверку условий в этих двух основных.
Порядок количества итераций - млн. На данный момент скорость несколько сотен итераций в секунду.
Логика включает в себя постоянные последовательные операции сравнения и ветвления, векторизация не проходит.
Гит.
Необходимо:
Каким-то способом увеличить производительность хотя бы на порядок, желательно на два. (CPython, PyPy, Cython, Numba, оптимизация, написание части алгоритма на С, что-то еще.., любой вариант.)