Skip to content

High-performance Python in practice. Examples of code optimization using various methods and packages.

License

Notifications You must be signed in to change notification settings

Mikma03/High-performance-Python

Repository files navigation

High-performance-Python

Detailed information in chapters

  • Chapter 1: Profiling

    • What are the ways to profile your code?

    • What insights can I gain from a profile?

  • Chapter 2: Understanding Performant Programming

    • How does a computer work and how does that affect my code performance?
  • Chapter 3: Lists and Tuples

    • How do lists and tuples work?

    • What are the performance implications of this?

  • Chapter 4: Dictionaries and Sets

    • How do dictionaries and sets work?

    • What are the performance implications of this?

  • Chapter 5: Iterators

    • How do iterators work?

    • How can I use them to reduce memory in my code?

    • How can I use them to reduce the CPU operations needed in my code?

  • Chapter 6: Matrix and Vector Computation

    • How does the CPU perform matrix/vector operations?

    • What are the ways I can profile the efficiency of these operations?

    • How can I speed up code given a profile?

  • Chapter 7: Compiling to C

    • What are the automated ways to compile my python to C?

    • What are the manual ways to compile my python to C?

    • How can I use these technologies to speed up my code and not slow down development?

  • Chapter 8: Concurrency

    • How does concurrency work and how does python support it?

    • How can I speed up multiple IO operations?

    • How can I hide IO wait?

  • Chapter 9: Multiprocessing

    • What is multiprocessing?

    • How can I speed up my code on a multiple CPU machine?

    • What are the subtleties of muli-CPU code?

  • Chapter 10: Clusters and Job Queues

    • How can I extend my code to a cluster?

    • What are some of the pain-points with clusters?

    • What is a queue and how is it useful?

  • Chapter 11: Using Less Ram

    • How can I use algorithms to reduce the RAM usage of my code?

    • What are tries and probabilistic data structures?

Additionals materials