Если кто использует/использовал Cython, каких результатов в скорости удалось добиться в программе в целом, а не на участке кода?
Создатели этого языка утверждают об ускорении кода по сравнению с питоновским в 10-1000 раз. Но у меня сложилось субъективное мнение, что вызов ситоновских функций несколько замедляет процесс. Т.е. получив ускорение на 5-10% внутри функции, можно его лишиться при вызове. Но это значение столь невелико что однозначно утверждать это сложно.
Присутствуют так же функции которые выдерживают заявленную планку и ускоряются в 100 раз (в 1000 я что-то сомневаюсь). Хороший пример для этого trasnlit, или любая функция которая что-то делает в цикле со статическими данными.
Но в целом итог достаточно печальный. Привожу краткий отчёт своего эксперимента: скрипт ориентированный в основном для работы со строками. Был выбран один участок кода и полностью переведён в Cython. Я использовал для синхронизации препроцессор, поэтому по окончанию имеется одновременно код на двух языках. Т.е код алгоритмически идентичный. Это дало ускорение на 15%. После жёсткой инлайн оптимизации несколько тыщ строк (sick!), время выполнения сократилось ещё на 10%. Итого имеем 25%.
Что б до конца быть честным, скажу что за неделю эксперимента, программа потерпела серьёзные изменения в архитектуре, и тот же код на том же питоне стал работать в почти 5 раз быстрей.
P.S. Добавлю ещё то что скрипт на момент лучшей оптимизации работает на 90% с памятью и только 10% операции с файлами и БД.