Прямо сейчас у меня есть алгоритм обработки изображений, который составляет примерно 100 строк или около того на Python. При использовании numpy
, PIL
и scipy
требуется около 500 мс. Я хочу сделать это быстрее, и, поскольку фактический алгоритм кажется довольно оптимизированным, мне интересно, улучшит ли время использование другого подхода, такого как Cython
. Я считаю, что у меня есть несколько разных вещей, которые я мог бы сделать:
- Используйте Cython, чтобы предоставить Python соответствующие части библиотеки C.
- Используйте Ctypes, чтобы просто писать все на C, но при этом иметь чистый Python (совсем не склоняясь к этому)
- Создайте модуль расширения в C/C++, а затем импортируйте его и вызовите функции. Я не уверен, смогу ли я использовать
numpy
таким образом. - Создайте DLL и попросите Python загрузить ее. Это не позволяет использовать
numpy
или эти модули, но все равно будет очень эффективным.
Я просто ищу здесь скорость, не беспокоясь о сложности реализации. Есть ли какой-то один вариант, который лучше в данном случае, они все одинаковые или вообще стоит делать?