Производительность Boost Python

Я работаю над проектом, в котором я экспериментирую с Boost Python. При изучении того, как организовать мой интерфейс Python, я столкнулся с комментарий Утверждалось, что есть проблемы с производительностью с наддува Python. Есть ли какая-то реальная проблема с его производительностью?

В этом случае я работаю с большим проектом, и мы хотим представить некоторые из них Python. Я обнаружил, что Boost Python позволяет легко выставлять классы, которые у меня уже есть. Поэтому я бы предпочел придерживаться методов экспозиции классов в python, потому что это так просто. Если у кого-то нет альтернативы, такой же простой в использовании и производительной.

5

Решение

Мы используем boost :: python для интеграции большой библиотеки компьютерного зрения в легко конфигурируемый программный пакет для исследователей в других областях. Мы не столкнулись ни с проблемами, ни с проблемами, чтобы узнать. Однако в последнее время мы не проводили сравнительные тесты.

2

Другие решения

Если ваш сценарий использования требует много вызовов туда и обратно между Python и C ++ в тесном цикле, то Boost.Python может быть проблемой производительности, по крайней мере, в сравнении с упакованными вручную обертками, которые напрямую используют C-API Python. Гораздо сложнее угадать, будет ли он работать хуже, чем что-то такое же удобное для пользователя, как SWIG.

Но самый большой вопрос производительности заключается в том, можете ли вы избежать такого рода взад-вперед — API, который может избежать повторного преодоления барьера C ++ / Python, обычно всегда будет работать лучше, чем тот, который работает, независимо от того, какую библиотеку или инструмент-оболочку вы используете. Чаще всего это означает перемещение циклов из Python в C ++ и избегание обратных вызовов Python и особенно преобразований типов Python-в-C ++ внутри этих циклов.

2

По вопросам рекламы [email protected]