I like to use python for almost everything and always had clear in my mind that if for some reason I was to find a bottleneck in my python code(due to python’s limitations), I could always use a C script integrated to my code.
But, as I started to read a guide on how to integrate python. In the article the author says:
There are several reasons why one might wish to extend Python in C or C++, such as:
- Calling functions in an existing library.
- Adding a new builtin type to Python
- Optimising inner loops in code
- Exposing a C++ class library to Python
- Embedding Python inside a C/C++ application
Nothing about performance. So I ask again, is it reasonable to integrate python with c for performance?
In my experience it is rarely necessary to optimize using C. I prefer to identify bottlenecks and improve algorithms in those areas completely in Python. Using hash tables, caching, and generally re-organizing your data structures to suit future needs has amazing potential for speeding up your program. As your program develops you’ll get a better sense of what kind of material can be precalculated, so don’t be afraid to go back and redo your storage and algorithms. Additionally, look for chances to kill “two birds with one stone”, such as sorting objects as you render them instead of doing huge sorts.
When everything is worked to the best of your knowledge, I’d consider using an optimizer like Psyco. I’ve experienced literally 10x performance improvements just by using Psyco and adding one line to my program.
If all else fails, use C in the proper places and you’ll get what you want.