{ "metadata": { "name": "", "signature": "sha256:91e28abc35e42fd71d64d3d474aeb54e4b38e4f01ace5d68ed314731bd5fc976" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import re\n", "\n", "\n", "PATTERN = r\"Wally\"\n", "COMPILED = re.compile(PATTERN)\n", "STRING = \"We are looking for Wally right now!\"\n", "DATA_SEED = [STRING]\n", "\n", "\n", "def simple(string):\n", " return re.search(PATTERN, string)\n", "\n", "\n", "def compiled(string):\n", " return COMPILED.search(string)\n", "\n", "\n", "def bench_loop(lines, check_fn):\n", " good_strings = 0\n", " for line in lines:\n", " re._cache.pop((str, PATTERN, 0), None)\n", " if check_fn(line):\n", " good_strings += 1\n", " re._cache[(str, PATTERN, 0)] = COMPILED\n", " return good_strings\n", "\n", "\n", "lines = DATA_SEED * 10**4" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit bench_loop(lines, simple)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1 loops, best of 3: 602 ms per loop\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit bench_loop(lines, compiled)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100 loops, best of 3: 14.2 ms per loop\n" ] } ], "prompt_number": 3 } ], "metadata": {} } ] }