Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Faster Python


Published on

Faster Python Code in 5 minutes. Quick python optimization tips for beginners and advanced users.

Published in: Technology

Faster Python

  1. Faster Python Code in 5 minutes Anoop Thomas Mathew Profoundis Labs @atmb4u 31st August, 2013 PyCon India 2013
  2. ➢@atmb4u ➢ Co-Founder and CTO @ Profoundis Labs ➢ Avid user of open source since 2003 ➢ Python and Django for last 4 years ABOUTME
  3. Quick Profiling ● %timeit and %prun in ipython ● Try line_profiler ● Not premature optimization TIP1
  4. use Iterators as possible ● Iterators and Generators are memory efficient and scalable ● use itertools as much as possible TIP2
  5. listcomprehension > for loop > while loop consider numpy and tuples for huge data TIP3
  6. xrange instead of range C version of range, designed to work with int TIP4
  7. map is a wonderful idea, so is reduce and filter map(function, data) TIP5
  8. Function calls are costly ● pass entire list to a function than iterating on each element and calling the function ● Recursive loops are dangerous with quadratic complexity TIP6
  9. Local variables are faster they are faster than global variables, builtins and attribute lookups TIP7
  10. delete the unnecessary ● use proper namespacing ● weakref is a good idea ● use gc.collect() to expicitly collect the unused variables TIP8
  11. Threads for I/O ctypes for CPU(GIL) ● use threads for I/O bound processes. ● For CPU bound with GIL lock, use gevent or C extensions to override it TIP9
  12. cProfile cStringIO cPickle ... use C versions of library. They can be 100x faster. TIP10
  13. Standard Library & builtin functions are always faster TIP11
  14. use try than if; given mostly True (exeptions exists: builtin functions are always faster) NB: Bad practice! TIP12
  15. immutable types when possible TIP13
  16. ● ''.join('<string>') is faster than + ●insert in a list is O(n) ● Faster lookup in dict, set ●deque for double sided operations TIP14
  17. Slides @ More Info MOREINFO
  18. THANKYOU on twitter: @atmb4u