{ "metadata": { "name": "", "signature": "sha256:4f36b3780eeb71f6e41a1eb21f71c879040b388c5577f1b208efd8cefeac9e73" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Sebastian Raschka](http://sebastianraschka.com) \n", "\n", "- [Open in IPython nbviewer](http://nbviewer.ipython.org/github/rasbt/One-Python-benchmark-per-day/blob/master/ipython_nbs/day19_izip_and_xrange.ipynb) \n", "\n", "- [Link to this IPython notebook on Github](https://github.com/rasbt/One-Python-benchmark-per-day/blob/master/ipython_nbs/day19_izip_and_xrange.ipynb) \n", "\n", "- [Link to the GitHub Repository One-Python-benchmark-per-day](https://github.com/rasbt/One-Python-benchmark-per-day)\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load_ext watermark" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "%watermark -d -v -u" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Last updated: 20/07/2014 \n", "\n", "CPython 2.7.8\n", "IPython 2.1.0\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "[More information](http://nbviewer.ipython.org/github/rasbt/python_reference/blob/master/ipython_magic/watermark.ipynb) about the `watermark` magic command extension." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "I would be happy to hear your comments and suggestions. \n", "Please feel free to drop me a note via\n", "[twitter](https://twitter.com/rasbt), [email](mailto:bluewoodtree@gmail.com), or [google+](https://plus.google.com/+SebastianRaschka).\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Day 19 - One Python Benchmark per Day" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Python 2.x's izip and xrange" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A common use-case for the `range` function is the classic for-loop. In Python 2.x, `range` will create a list in memory and iterate over it. As you can imagine, its is not always very efficient to create a list (especially for a large number of iterations) if we just want to use it once. \n", "Thus, the `xrange` function was added later-on, which evaluates \"lazily\" similar to generators. \n", "(In Python 3.x, the `range` function was implemented similar to Python's `xrange`). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But note that it using `xrange` instead of `range` does not always make sense. E.g., if we have a use-case where we want to iterate over the sequence (here: integers) multiple times, it would be more efficient to use `range`, since `xrange` is always constructing the values from scratch. \n", "And also slicing is not supported by `xrange`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 'range', type(range(3))\n", "print 'xrange', type(xrange(3))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "range \n", "xrange \n" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following benchmark, we will take a look at the speed advantages of `range` over `xrange` using a simple for-loop construct:\n", " \n", " for i in range(some_int):\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similar to the `xrange` function, the `izip` function (in the `itertools` built-in module) evaluates the values in a list \"lazily\" without constructing a list of tuples like it's `zip` counterpart." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from itertools import izip\n", "\n", "print 'zip', type(zip([1,2], [3,4]))\n", "print 'izip', type(izip([1,2], [3,4]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "zip \n", "izip \n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also here, we take a look at the speed benefits of using `izip` over `zip` for a simple for-loop construct:\n", " \n", " for i in range(n, n): # where i is a tuple of 2 values\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Bechmarking via `timeit`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import timeit\n", "\n", "xrange_list, range_list, zip_list, izip_list = [], [], [], []\n", "\n", "orders = [10**i for i in xrange(1, 9)]\n", "\n", "for n in orders:\n", "\n", " print('n=%s (%s of %s)' %(n, orders.index(n)+1, len(orders)))\n", "\n", " range_list.append(min(timeit.Timer('for i in range(n): pass' , \n", " 'from __main__ import n').repeat(repeat=5, number=1)))\n", "\n", " xrange_list.append(min(timeit.Timer('for i in xrange(n): pass' , \n", " 'from __main__ import n').repeat(repeat=5, number=1)))\n", " zip_list.append(min(timeit.Timer('for i in zip(range(n), range(n)): pass' , \n", " 'from __main__ import n').repeat(repeat=5, number=1)))\n", " izip_list.append(min(timeit.Timer('for i in izip(range(n), range(n)): pass' , \n", " 'from __main__ import n, izip').repeat(repeat=5, number=1)))\n", "print('finished')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "n=10 (1 of 8)\n", "n=100 (2 of 8)\n", "n=1000 (3 of 8)\n", "n=10000 (4 of 8)\n", "n=100000 (5 of 8)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "n=1000000 (6 of 8)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "n=10000000 (7 of 8)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "n=100000000 (8 of 8)" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "finished" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "from matplotlib import pyplot as plt\n", "\n", "def plot():\n", " \n", " def settings():\n", " plt.xlim([min(orders) / 10, max(orders)* 10])\n", " plt.grid()\n", " plt.xticks(fontsize=16)\n", " plt.yticks(fontsize=16)\n", " plt.xscale('log')\n", " plt.yscale('log')\n", " plt.legend(loc='upper left', fontsize=14)\n", " plt.xlabel('size of n', fontsize=16)\n", " plt.ylabel('time in seconds (log-scale)', fontsize=16)\n", " \n", " fig = plt.figure(figsize=(14,6))\n", " \n", " plt.subplot(1,2,1)\n", " plt.plot(orders, range_list, label='range(n)')\n", " plt.plot(orders, xrange_list, label='xrange(n)')\n", " plt.title('range and xrange in a for-loop', fontsize=22)\n", " settings()\n", " \n", " plt.subplot(1,2,2)\n", " plt.plot(orders, zip_list, label='zip(n, n)')\n", " plt.plot(orders, izip_list, label='izip(n, n)')\n", " plt.title('zip and izip in a for-loop', fontsize=22)\n", " settings()\n", " \n", " plt.tight_layout()\n", " plt.show()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Results" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\njfPf9v5Gk3ebsPKXlWR0z8hT49zW4w32Zldudyl3csitufVh+BbxFJpAJillXx6tZUsYPhyuvPLv\ny6PlJBQKMX7NeB6b+xg1y9dkYeeFnH/q+YkNLiIiR6NaLlb68UfTpb18efjiCzjxRFixZQUt32/J\nbRfexuCGgyl2TLxTKYmI2EODgQvxuLXo5dHKlzcTvuW2PFpOPtv8GQ/PfpgDmQd4sdGLXHv2tQnJ\nKyKSTLTMmqMKbS1PRp9+Cm3amGXU+vaFY46B1NWp3P/x/bx646u0rdHW64giIoD7Y9AlCe3fb2Zd\nf+stWLoU7rgDpk2DWjktvJOLb3d8y2NzHiP9h3Seue4Z2tdszzFF4l25T0REROSwUAj+/W8zCdw7\n70CTJma8+WOfPM6EryYwp8Mcap2ejw8sIiIWUWvKUnkdq7F6NTz0EFSqZLqvd+4MP/wAr7yS98b5\njj930Ht2b+qOqEvN8jVZf996OtbqGFfj3OYxJrZmV2532Zob7M1ua25xVkpKinXngm15IxKRe+9e\nuPNOM9wuPd00zrf/uZ2m7zVl6c9LyeieUeDGua3HG+zNrtzuUm73BIPBhC3VrQZ6Etu9G0aMgAYN\nTKErVQoWL4a5c01X9uPyOKn6gcwDvLL4FS547QJ+3/87a+5ZQ7+r+1Hy2JKJ+Q8QERGJU2QddLHP\nxo1wxRVmTpzPPoMqVWDlLyupO6IutcrXYmb7mZQtWdbrmCIifwkEAglroGvsW5KNW8u+PNq115qx\n5fEujxb7NUNMWT+FRz95lConV+HFxi9So1wNZ4OLiBQyGoPuqKSq5YXJrFnQsSM88QTcf7+ZnHb8\nmvHcO+NehjUZxh0X3eF1RBGRHGkMuuRo61YYPdo0zDMzoVs3WLfOTP5WEEt+WsLDsx9m+5/befXG\nV7nh3BucCSwiIiKFVigEzz5rxpx/8AFcfTVkZmXyxNwneH/N+8xuP5uLK1zsdUwREdepi7ulgsEg\nmZkwc6ZZhuS882DVKvjPf0zD/JFHCtY437xrMx0md6D5uOa0v6g9y3osc6RxbuMYkwhbsyu3u2zN\nDfZmtzW3iK3nbkFz//67WdN86lSzhNrVV5vx5jeNvYmMnzLI6J6RkMa5rccb7M2u3O5S7uSgBjr2\nTSyzdatZGu3ss6F/f2jUCL77Dv7737ytXR7L7v27eWLuE9QeXpvKZSqz/r71dL+0u9YaFRFxSCIn\n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\nE8tsJPZkNUdbc1VERMTvVMtVy0VERERERERERERERERERERERERERERERERERERERERERERERERE\nREREREREREREREREREREREREREREREREREREREREREREREREREREROSo/h+zUBcZbje5FAAAAABJ\nRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "%watermark -d -v -m" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "20/07/2014 \n", "\n", "CPython 2.7.8\n", "IPython 2.1.0\n", "\n", "compiler : GCC 4.2.1 (Apple Inc. build 5577)\n", "system : Darwin\n", "release : 13.3.0\n", "machine : x86_64\n", "processor : i386\n", "CPU cores : 2\n", "interpreter: 64bit\n" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we take the logarithmic scale, the \"lazy evaluation\" really pays off in simple for-loop constructs where we are only iterating over a given sequence once. Especially with increasing sizes of `n`, we can obeserve that the construction of the list objects via `range` and `zip` becomes very inefficient for a one-time iteration use-case." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }