Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save smason/b4154f2c172260e0962fada3f359bb60 to your computer and use it in GitHub Desktop.
Save smason/b4154f2c172260e0962fada3f359bb60 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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
}
@smason
Copy link
Author

smason commented Jun 23, 2020

note this is Python 3.8.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment