Skip to content

Instantly share code, notes, and snippets.

@scopatz
Created December 26, 2013 18:50
Show Gist options
  • Save scopatz/8137317 to your computer and use it in GitHub Desktop.
Save scopatz/8137317 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from tables import *\n",
"\n",
"class KeyValue(IsDescription):\n",
" key = StringCol(itemsize=30, dflt=\" \", pos=0) # character String\n",
" value = Int64Col(dflt=0, pos=1)\n",
"\n",
"f = open_file(\"keyvalue.h5\", \"w\") \n",
"filters = Filters(complevel=1, complib='blosc')\n",
"kv = f.create_table(\"/\", \"keyvalues\", KeyValue, filters=filters)\n",
"\n",
"import string\n",
"import random\n",
"\n",
"for j in range(20):\n",
" values = []\n",
" for i in xrange(100000):\n",
" key = \"\".join(random.sample(string.uppercase, 5))\n",
" value = random.randint(0, 1000000)\n",
" values.append((key, value))\n",
" kv.append(values)\n",
"\n",
"f.close()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"f = open_file(\"keyvalue.h5\", \"a\")\n",
"kv = f.root.keyvalues\n",
"\n",
"kv.cols.value.remove_index()\n",
"\n",
"print \"without index\"\n",
"%timeit a = kv.read_where('value < 10')\n",
"%timeit a = kv.read_where('value < 1000')\n",
"\n",
"kv.cols.value.create_csindex()\n",
"\n",
"print \"with index\"\n",
"%timeit a = kv.read_where('value < 10')\n",
"%timeit a = kv.read_where('value < 1000')\n",
"\n",
"#f.close()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"without index\n",
"10 loops, best of 3: 139 ms per loop"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1 loops, best of 3: 175 ms per loop"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"with index"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"10000 loops, best of 3: 201 \u00b5s per loop"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"10 loops, best of 3: 88.6 ms per loop"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from timeit import timeit, repeat"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = []\n",
"for i in range(7):\n",
" x = repeat(lambda: kv.read_where('value < {0}'.format(10**i)), number=10)\n",
" data.append(min(x)/10)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import matplotlib.pyplot as plt\n",
"plt.loglog([10**i for i in range(7)], data)\n",
"plt.xlabel(\"max value\")\n",
"plt.ylabel(\"execution time [sec]\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
"<matplotlib.text.Text at 0x92db9d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x9287a90>"
]
}
],
"prompt_number": 17
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"f.close()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 18
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment