Mastering Python high performance : measure, optimize, and improve the performance of your Python code with this easy-to-follow guide /
Measure, optimize, and improve the performance of your Python code with this easy-to-follow guide About This Book Master the do's and don'ts of Python performance programming Learn how to use exiting new tools that will help you improve your scripts A step-by-step, conceptual guide to teac...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham, UK :
Packt Publishing,
[2015]
|
Colección: | Community experience distilled.
|
Temas: | |
Acceso en línea: | Texto completo Texto completo |
Tabla de Contenidos:
- Cover; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Profiling 101; What is profiling?; Event-based profiling; Statistical profiling; The importance of profiling; What can we profile?; Execution time; Where are the bottlenecks?; Memory consumption and memory leaks; The risk of premature optimization; Running time complexity; Constant time
- O(1); Linear time
- O(n); Logarithmic time
- O(log n); Linearithmic time
- O(nlog n); Factorial time
- O(n!); Quadratic time
- O(n^); Profiling best practices.
- Build a regression-test suiteMind your code; Be patient; Gather as much data as you can; Preprocess your data; Visualize your data; Summary; Chapter 2: The Profilers; Getting to know our new best friends: the profilers; cProfile; A note about limitations; The API provided; The Stats class; Profiling examples; Fibonacci again; Tweet stats; line_profiler; kernprof; Some things to consider about kernprof; Profiling examples; Back to Fibonacci; Inverted index; Summary; Chapter 3: Going Visual: GUIs to Help Understand Profiler Output; KCacheGrind
- pyprof2calltree; Installation; Usage.
- A profiling example
- TweetStatsA profiling example
- Inverted Index; RunSnakeRun; Installation; Usage; Profiling examples
- the lowest common multiplier; A profiling example
- search using the inverted index; Summary; Chapter 4: Optimize Everything; Memoization / lookup tables; Performing a lookup on a list or linked list; Simple lookup on a dictionary; Binary search; Use cases for lookup tables; Usage of default arguments; List comprehension and generators; ctypes; Loading your own custom C library; Loading a system library; String concatenation; Other tips and tricks; Summary.
- Chapter 5: Multithreading versus MultiprocessingParallelism versus concurrency; Multithreading; Threads; Multiprocessing; Multiprocessing with Python; Summary; Chapter 6: Generic Optimization Options; PyPy; Installing PyPy; A Just-in-time compiler; Sandboxing; Optimizing for the JIT; Think of functions; Consider using cStringIO to concatenate strings; Actions that disable the JIT; Code sample; Cython; Installing Cython; Building a Cython module; Calling C functions; Solving naming conflicts; Defining types; Defining types during function definitions; A Cython example; When to define a type.
- LimitationsGenerator expressions; Comparison of char* literals; Tuples as function arguments; Stack frames; How to choose the right option; When to go with Cython; When to go with PyPy; Summary; Chapter 7: Lightning Fast Number Crunching with Numba, Parakeet, and pandas; Numba; Installation; Using Numba; Numba's code generation; Running your code on the GPU; The pandas tool; Installing pandas; Using pandas for data analysis; Parakeet; Installing Parakeet; How does Parakeet work?; Summary; Chapter 8: Putting It All into Practice; The problem to solve; Getting data from the Web.