Created
June 23, 2020 09:37
-
-
Save smason/b4154f2c172260e0962fada3f359bb60 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from timeit import Timer\n", | |
"from dis import dis\n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"\n", | |
"sns.set(style='ticks')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 3 0 LOAD_CONST 1 (1)\n", | |
" 2 STORE_FAST 2 (a)\n", | |
"\n", | |
" 4 4 LOAD_FAST 1 (_timer)\n", | |
" 6 CALL_FUNCTION 0\n", | |
" 8 STORE_FAST 3 (_t0)\n", | |
"\n", | |
" 5 10 LOAD_FAST 0 (_it)\n", | |
" 12 GET_ITER\n", | |
" >> 14 FOR_ITER 18 (to 34)\n", | |
" 16 STORE_FAST 4 (_i)\n", | |
"\n", | |
" 6 18 LOAD_FAST 2 (a)\n", | |
" 20 LOAD_FAST 2 (a)\n", | |
" 22 LOAD_FAST 2 (a)\n", | |
" 24 LOAD_FAST 2 (a)\n", | |
" 26 LOAD_FAST 2 (a)\n", | |
" 28 BUILD_TUPLE 5\n", | |
" 30 POP_TOP\n", | |
" 32 JUMP_ABSOLUTE 14\n", | |
"\n", | |
" 7 >> 34 LOAD_FAST 1 (_timer)\n", | |
" 36 CALL_FUNCTION 0\n", | |
" 38 STORE_FAST 5 (_t1)\n", | |
"\n", | |
" 8 40 LOAD_FAST 5 (_t1)\n", | |
" 42 LOAD_FAST 3 (_t0)\n", | |
" 44 BINARY_SUBTRACT\n", | |
" 46 RETURN_VALUE\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"33.17329997662455" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def mk(n, brackets):\n", | |
" # trailing comma important for singleton tuples\n", | |
" elems = 'a,' * n\n", | |
" pre,post = brackets\n", | |
" return f'{pre}{elems}{post}'\n", | |
"\n", | |
"t = Timer(mk(5, '()'), \"a=1\")\n", | |
"\n", | |
"# make sure it's doing what we think it should be\n", | |
"dis(t.inner)\n", | |
"\n", | |
"t.timeit(10)\n", | |
"t.timeit(1_000_000) * 1000" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"1\n", | |
"2\n", | |
"5\n", | |
"10\n", | |
"20\n", | |
"50\n", | |
"100\n", | |
"200\n", | |
"500\n", | |
"1000\n", | |
"1\n", | |
"2\n", | |
"5\n", | |
"10\n", | |
"20\n", | |
"50\n", | |
"100\n", | |
"200\n", | |
"500\n", | |
"1000\n" | |
] | |
} | |
], | |
"source": [ | |
"def bt(brackets):\n", | |
" result = []\n", | |
" for n in [1,2,5,10,20,50,100,200,500,1000]:\n", | |
" print(n)\n", | |
" t = Timer(mk(n, brackets), \"a=1\")\n", | |
" k = 50_000_000 // (5+n)\n", | |
" # cache warmup\n", | |
" t.timeit(10)\n", | |
" result.extend((\n", | |
" (n, t.timeit(k) / k * 1e9)\n", | |
" for _ in range(3)\n", | |
" ))\n", | |
" return result\n", | |
"\n", | |
"# spin up CPUs\n", | |
"for _ in range(50_000_000):\n", | |
" pass\n", | |
"\n", | |
"times_tuple = bt('()')\n", | |
"times_list = bt('[]')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.loglog(\n", | |
" [n for (n,ns) in times_tuple],\n", | |
" [ns for (n,ns) in times_tuple],\n", | |
" '.', label='tuples'\n", | |
")\n", | |
"plt.loglog(\n", | |
" [n for (n,ns) in times_list],\n", | |
" [ns for (n,ns) in times_list],\n", | |
" '.', label='lists'\n", | |
")\n", | |
"plt.legend()\n", | |
"sns.despine()\n", | |
"plt.xlabel(\"number of elements\")\n", | |
"plt.ylabel(\"time (ns)\")\n", | |
"plt.tight_layout()\n", | |
"plt.show()" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.8.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
note this is Python 3.8.3