Chapter 14. Extensions in C/C++, System Calls, and C/C++ Libraries
Now that we know a bit more about performance and multiprocessing, we will explain another subject that is at least somewhat performance-related—the usage of C and/or C++ extensions.
There are multiple reasons to consider C/C++ extensions. Having existing libraries available is an important one, but truthfully, the most important reason is performance. In Chapter 12, Performance – Tracking and Reducing Your Memory and CPU Usage, we saw that the cProfile
module is about 10 times faster than the profile
module, which indicates that at least some C extensions are faster than their pure Python equivalents. This chapter will not focus on performance that much, however. The goal here is interaction with non-Python libraries. Any performance improvement will just be a completely unintentional side effect.
We will discuss the following options in this chapter:
- Ctypes for handling foreign (C/C++) functions and...