Book Image

Mastering Python High Performance

Book Image

Mastering Python High Performance

Overview of this book

Table of Contents (15 chapters)

Index

A

  • Anaconda Python distribution
    • URL / Installing pandas
  • appDirs
    • URL / Installing Parakeet

B

  • Big O notation
    • about / Running time complexity

C

  • code optimization
    • about / How to choose the right option
    • with Cython / When to go with Cython
    • with PyPy / When to go with PyPy
  • Compute Unified Device Architecture (CUDA)
    • from Nvidia, URL / Multithreading
  • configuration, Numba
    • No GIL / No GIL
    • NoPython mode / NoPython mode
  • constant time - O(1)
    • about / Constant time – O(1)
  • cProfile
    • URL / Getting to know our new best friends: the profilers
    • about / Getting to know our new best friends: the profilers, cProfile
    • example / cProfile
    • limitations / A note about limitations
    • API / The API provided
    • methods, using / The API provided
    • Stats class / The Stats class
    • Fibonacci example / Fibonacci again
    • Tweet stats example / Tweet stats
  • cStringIO
    • using / Consider using cStringIO to concatenate strings
    • URL / Consider using cStringIO to concatenate strings
  • ctypes library
    • about / ctypes
    • URL / ctypes
    • custom C library, loading / Loading your own custom C library
    • system library, loading / Loading a system library
  • CUDA programming
    • URL / Running your code on the GPU
    • about / Running your code on the GPU
  • Cython
    • about / Cython
    • URL / Cython, Installing Cython
    • installing / Installing Cython
    • C functions, calling / Calling C functions
    • naming conflicts, solving / Solving naming conflicts
    • types, defining / Defining types
    • standard Python functions, defining / Defining types during function definitions
    • C functions, defining / Defining types during function definitions
    • function types, defining / Defining types during function definitions
    • example / A Cython example
    • type definition, considerations / When to define a type
    • limitations / Limitations
    • considerations / When to go with Cython
  • Cython, limitations
    • generator expressions / Generator expressions
    • comparison of char* literals / Comparison of char* literals
    • tuples, as function arguments / Tuples as function arguments
    • stack frames / Stack frames
  • Cython module
    • building / Building a Cython module
    • definition files / Building a Cython module
    • implementation files / Building a Cython module
    • reference link / Building a Cython module

D

  • data analysis
    • with pandas / Using pandas for data analysis
  • default arguments
    • about / Usage of default arguments
  • definition files
    • about / Building a Cython module
  • deterministic profiler
    • about / cProfile
  • dsltools
    • URL / Installing Parakeet

E

  • event-based profilers
    • about / Event-based profiling
  • event-based profiling
    • about / Event-based profiling
    • programming language support / Event-based profiling
  • events
    • about / Events
  • execution time
    • profiling / Execution time

F

  • factorial time - O(n!)
    • about / Factorial time – O(n!)
  • first in first out (FIFO) / Interprocess communication

G

  • generators
    • about / List comprehension and generators
  • Global Interpreter Lock (GIL)
    • about / Multithreading
  • GPU
    • code, executing / Running your code on the GPU

I

  • implementation files
    • about / Building a Cython module
  • initial code base
    • about / The initial code base
    • analysing / Analyzing the code
    • scraper / Scraper
    • for analyzer script / Analyzer
  • inverted index
    • URL / Inverted index
    • creating, with line_profiler / Inverted index
    • about / Inverted index
    • getOffsetUpToWord function, using / getOffsetUpToWord, getOffsetUpToWord
    • getWords function, using / getWords, getWords
    • list2dict function, using / list2dict, list2dict
    • readFileContent function, using / readFileContent
    • saveIndex function, using / saveIndex, saveIndex
    • __start__ method, using / __start__
  • issues
    • solving / The problem to solve
    • data, getting from Web / Getting data from the Web
    • data, postprocessing / Postprocessing the data

J

  • Just-in-time (JIT) compiler
    • about / PyPy
    • using / A Just-in-time compiler
    • optimizing / Optimizing for the JIT
    • functions, using / Think of functions
    • cStringIO, using / Consider using cStringIO to concatenate strings
    • disabling / Actions that disable the JIT
  • JVM Tools Interface (JVMTI)
    • about / Event-based profiling

K

  • KCacheGrind
    • about / KCacheGrind – pyprof2calltree
    • TweetStats example / A profiling example – TweetStats
    • inverted index example / A profiling example – Inverted Index
  • kernprof
    • about / kernprof
    • using / kernprof
    • considerations / Some things to consider about kernprof
    • Fibonacci example / Back to Fibonacci

L

  • linearithmic time - O(nlog n)
    • about / Linearithmic time – O(nlog n)
  • linear time - O(n)
    • about / Linear time – O(n)
  • line_profiler
    • about / Getting to know our new best friends: the profilers, line_profiler
    • URL / Getting to know our new best friends: the profilers
    • installing / line_profiler
    • kernprof, using / line_profiler
    • using / line_profiler
    • kernprof / kernprof
    • Fibonacci example / Back to Fibonacci
    • inverted index, creating / Inverted index
  • list comprehension
    • about / List comprehension and generators
  • logarithmic time - O(log n)
    • about / Logarithmic time – O(log n)
  • lookup tables
    • about / Memoization / lookup tables
    • on list / Performing a lookup on a list or linked list
    • on linked list / Performing a lookup on a list or linked list
    • on dictionary / Simple lookup on a dictionary
    • binary search / Binary search
    • use cases / Use cases for lookup tables
  • lsprofcalltree.py tool
    • about / KCacheGrind – pyprof2calltree
    • URL / KCacheGrind – pyprof2calltree

M

  • matplotlib
    • URL / Using pandas for data analysis
  • memory consumption
    • about / Memory consumption and memory leaks
  • memory leaks
    • about / Memory consumption and memory leaks
  • miniconda
    • about / Installation
    • URL / Installation
  • multiprocessing
    • benefits / Multithreading
    • about / Multiprocessing
    • advantages / Multiprocessing
    • disadvantages / Multiprocessing
  • multiprocessing, with Python
    • URL / Multiprocessing with Python
    • about / Multiprocessing with Python
    • exit status / Exit status
    • process pooling / Process pooling
    • interprocess communication / Interprocess communication
    • pipes / Pipes
    • events / Events
  • multithreading
    • about / Multithreading
    • drawbacks / Multithreading

N

  • namedtuples
    • URL / Other tips and tricks
  • Natural Language Processing (NLP) / Postprocessing the data
  • nfl sort
    • versus stdname sort / The Stats class
  • NLTK
    • URL / Postprocessing the data
  • Numba
    • about / Numba
    • URL / Numba
    • installing / Installation
    • using / Using Numba
    • code generation / Numba's code generation
    • compilation / Eager compilation
    • configuration settings / Other configuration settings
    • code, executing in GPU / Running your code on the GPU
    • reference link / Running your code on the GPU
  • NumPy
    • URL / Installing Parakeet

O

  • OCaml
    • URL / Multithreading
  • OpenCL
    • from Khronos Group, URL / Multithreading
  • OProfile
    • URL / Statistical profiling
  • optimization
    • tips / Other tips and tricks
    • tricks / Other tips and tricks

P

  • pandas
    • about / The pandas tool
    • URL / The pandas tool
    • installing / Installing pandas
    • used, for data analysis / Using pandas for data analysis
  • Parakeet
    • about / Parakeet
    • features / Parakeet
    • installing / Installing Parakeet
    • URL / Installing Parakeet
    • working with / How does Parakeet work?
  • parallelism
    • versus concurrency / Parallelism versus concurrency
  • pip
    • URL / Installation
  • pip command-line tool / Getting data from the Web
  • pipes
    • URL / Pipes
    • about / Pipes
  • premature optimization
    • risk / The risk of premature optimization
  • profilers
    • about / Getting to know our new best friends: the profilers
    • cProfile / Getting to know our new best friends: the profilers
    • line_profiler / Getting to know our new best friends: the profilers
  • profiling
    • about / What is profiling?
    • event-based profiling / Event-based profiling
    • statistical profiling / Statistical profiling
    • importance / The importance of profiling
    • measuring / What can we profile?
    • execution time / Execution time
    • bottlenecks / Where are the bottlenecks?
    • best practices / Profiling best practices
  • profiling, best practices
    • regression-test suite, building / Build a regression-test suite
    • functional code / Mind your code
    • be patient / Be patient
    • data, gathering / Gather as much data as you can
    • data, preprocessing / Preprocess your data
    • data, visualizing / Visualize your data
  • pyprof2calltree
    • about / KCacheGrind – pyprof2calltree
    • installation / Installation
    • usage / Usage
    • TweetStats example / A profiling example – TweetStats
    • inverted index example / A profiling example – Inverted Index
  • PyPy
    • about / PyPy
    • URL / PyPy
    • features / PyPy
    • Just-in-time (JIT) compiler / A Just-in-time compiler
    • sandboxing / Sandboxing
    • code sample / Code sample
    • considerations / When to go with PyPy
  • PyPy
    • installing / Installing PyPy

Q

  • QCacheGrind
    • installing / Installation
    • URL / Installation
  • quadratic time - O(n^)
    • about / Quadratic time – O(n^)

R

  • read-eval-print loop(REPL)
    • about / Usage
  • RTC
    • about / Running time complexity
    • constant time - O(1) / Constant time – O(1)
    • linear time - O(n) / Linear time – O(n)
    • logarithmic time - O(log n) / Logarithmic time – O(log n)
    • linearithmic time - O(nlog n) / Linearithmic time – O(nlog n)
    • factorial time - O(n!) / Factorial time – O(n!)
    • quadratic time - O(n^) / Quadratic time – O(n^)
  • RunSnakeRun
    • about / RunSnakeRun
    • features / RunSnakeRun
    • installation / Installation
    • usage / Usage
    • lowest common multiplier, obtaining / Profiling examples – the lowest common multiplier
    • word, searching inside inverted index / A profiling example – search using the inverted index

S

  • sandboxing
    • about / Sandboxing
  • Science Fiction & Fantasy
    • URL / Getting data from the Web
  • statistical profiling
    • about / Statistical profiling
    • advantages / Statistical profiling
  • Stats class
    • about / The Stats class
    • methods / The Stats class
    • sorting criteria / The Stats class
    • example / The Stats class
  • stdname sort
    • versus nfl sort / The Stats class
  • string concatenation
    • about / String concatenation

T

  • threading module
    • working with / Working with the threading module
    • thread class, URL / Working with the threading module
    • event construct, URL / Interthread communication with events
  • thread module
    • used, for creating threads / Creating a thread with the thread module
    • URL / Creating a thread with the thread module
  • threads
    • about / Threads
    • in Python / Threads
    • thread module / Threads
    • threading module / Threads
    • creating, thread module used / Creating a thread with the thread module
    • interthread communication, with events / Interthread communication with events
  • tracing profilers
    • about / Event-based profiling

W

  • wxPython
    • URL / Installation