In this chapter, we will cover the following recipes:
Debugging is the act of finding and removing bugs from software. Profiling means building a profile of a program in order to collect information about memory usage or time complexity. Profiling and debugging are activities that are integral to the life of a developer. This is especially true for complex software. The good news is that many tools can help you. We will review techniques popular among NumPy users.