Skip to content

Instantly share code, notes, and snippets.

@tacaswell
Forked from wesm/Feather-Perf-Test.ipynb
Created October 17, 2017 00:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tacaswell/8bcb48dc9506265f9dbad99f27fe9808 to your computer and use it in GitHub Desktop.
Save tacaswell/8bcb48dc9506265f9dbad99f27fe9808 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": {
"collapsed": true
},
"outputs": [],
"source": [
"import gc\n",
"import os\n",
"import time\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import feather"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def generate_floats(n, pct_null, repeats=1):\n",
" nunique = int(n / repeats)\n",
" unique_values = np.random.randn(nunique)\n",
" \n",
" num_nulls = int(nunique * pct_null)\n",
" null_indices = np.random.choice(nunique, size=num_nulls, replace=False)\n",
" unique_values[null_indices] = np.nan\n",
" \n",
" return unique_values.repeat(repeats)\n",
"\n",
"def generate_data(nrows, ncols, pct_null=0.1, repeats=1, dtype='float64'):\n",
" type_ = np.dtype('float64')\n",
" \n",
" data = {\n",
" 'c' + str(i): generate_floats(nrows, pct_null, repeats)\n",
" for i in range(ncols)\n",
" }\n",
" return pd.DataFrame(data)\n",
"\n",
" \n",
"MEGABYTE = 1 << 20\n",
"DATA_SIZE = 512 * MEGABYTE"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.13006229880011233\n",
"0.13049552879983822\n",
"0.13266863899989403\n"
]
}
],
"source": [
"def get_timing(f, path, niter):\n",
" start = time.clock_gettime(time.CLOCK_MONOTONIC)\n",
" for i in range(niter):\n",
" f(path)\n",
" elapsed = time.clock_gettime(time.CLOCK_MONOTONIC) - start\n",
" return elapsed\n",
"\n",
"NITER = 5\n",
"\n",
"NCOLS = [10, 50, 500]\n",
"\n",
"results = {}\n",
"for ncols in NCOLS:\n",
" NROWS = DATA_SIZE / ncols / np.dtype('float64').itemsize\n",
" df = generate_data(NROWS, ncols)\n",
"\n",
" path = 'test.feather'\n",
"\n",
" feather.write_dataframe(df, path)\n",
" \n",
" # prime the OS cache\n",
" feather.read_dataframe(path)\n",
" \n",
" gc.disable()\n",
" elapsed = get_timing(feather.read_dataframe, path, NITER) / NITER\n",
" gc.enable()\n",
" gc.collect()\n",
" print(elapsed)\n",
" results[ncols] = elapsed"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Feather 0.3.1\n",
"results = {10: 0.853481687803287, 50: 0.3072799387970008, 500: 0.7237378041958437}"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Feather 0.4.0\n",
"results = {10: 0.17156705660745503, 50: 0.17317785640479996, 500: 0.17500421280274167}"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"results = {\n",
" 'Feather 0.4.0': {10: 0.17156705660745503, 50: 0.17317785640479996, 500: 0.17500421280274167},\n",
" 'Feather 0.3.1': {10: 0.853481687803287, 50: 0.3072799387970008, 500: 0.7237378041958437}\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"results = pd.DataFrame(results)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtcAAAGDCAYAAADgeTwhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAAEt0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLnBv\nc3QyMytnNTYzNzYyYWE4LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv2mbDuQAAIABJREFUeJzt3Xu0\nVOWd5//3l4sSlUtEdBBoIcFogiAxeMkwv1HbROIlmJ4mxvzon5pJ4qCdsJw4rtCaXmP3TBJ6ks61\n26jdXjPdRmMHMa0mphMZEwdpQYkBNaIGW/CGJBAwoqDf3x+1z0mBh8MGnnPqlLxfa9U6tXft/exv\nPbsOfM5TT+2KzESSJEnS7uvX6gIkSZKkNwvDtSRJklSI4VqSJEkqxHAtSZIkFWK4liRJkgoxXEuS\nJEmFGK4l7bKIuCQi/r7VdbRaRIyNiIyIAa2upSdFxBcj4sIa262MiPf1Rk27KiI2RsTbdmG//xkR\nL0bEcz1R107UcVBEPBIRe7eyDklvZLiWtF1VAOm4vR4RLzctz8zML2TmJ3qhjrYOrxGxICI2NfXd\nL5seGxkRt0XEM9VzHLvNvl+OiBURsSEiHo2Is7s5zglVG/O2WX9ktX5B07qMiJeqel6MiBsjYlg3\nbY8Azgau3OkO2E1VreNLtpmZ+2XmkztZxx8AFwHvysx/t6vHrs7Tql3dHyAznwfuBs7bnXYklWe4\nlrRdVQDZLzP3A/4N+GDTun9odX27qkUh/VNNfXdY0/rXgR8Af7yd/V4CPggMBc4Bvh4R/76b46wB\n3hsRw5vWnQM81sW2R1bn9m3AW4HLumn3XOCOzHy5m22KKnGeCp/rPwDWZuYLBdvcaU3P6R+A/9LK\nWiS9keFa0i6LiMsi4n9X9ztGlz8WEU9HxG8iYlZEHB0RD0XEuoj4m232/8/VW9u/iYgfRsQh2znU\nPdXPddVI63sjol9EfC4inoqIFyLihogYup06T4iIVRHx2ert/Gur9adHxNKqtv8bEZOa9pkTEU9U\nI8YPR8QfNT3WvxpRfjEingRO29U+zMznM/Ny4P7tPP7fM/PRzHw9MxcBPwXe202TrwK3Amd11Ap8\nhEYQ214NvwVuA97VTbunAP+nYyEiDoiIf6767tcR8dOIaP4/ZXJ13tdHxE0RMahp309GxOPVfrdF\nxMFNj2VE/GlErABWRETHuf95de4/Um3X3blbWZ3rh4CXugrYzaPhEXFqdY43RMTqiPhvXWz/PuBH\nwMFVHddV678bEc9Vz/OeiJjQtM8b2o2IfYE7m9rZGBEHV6/njtfc2oi4OSL2r9rp+N36eET8G/CT\n6hCLgLd183sjqQUM15JKOxY4lEag+xpwKfA+YAJwZkQcDxARZwCXAP8JGEEjNN64nTb/Y/VzWDXy\nu5DGSOq5wIk0Rl73A/6my70b/h2wP3AIcF5EvBu4hsbI33Aa0x1ui9/PYX0C+H9ojBj/BfC/I2Jk\n9dgngdOBdwNTgBk76BOAL1Zh/N6IOKHG9m8QEW8BjgaW72DTG2hM4QCYBiwDnumm3bcCHwLu66bN\nicAvm5YvAlbROHcH0TiX2fT4mcAHgHHAJBrnioj4Q+CL1eMjgaeA72xzrA/ReB29KzM7zv2R1bm/\nqca5A/gojT96hmXmlm6eF8DVwH/JzMHAEfw+vHbKzH+h8QfGM1Ud51YP3Unj9X4g8ABb/xHzhnYz\n86Vt2tkvM58BPl097+OBg4HfAH+7TRnHA++kcU6pntfjwJE7eH6SepHhWlJp/yMzN2XmXTSmNNyY\nmS9k5moaAfrd1XazgC9m5iNVSPgCjdHOuqNwM4GvZOaTmbkR+DPgrG6mAbwO/PfMfKWa2nAecGVm\nLsrM1zLzeuAV4DiAzPxuZj5TjRjfBKwAjqnaOhP4WmY+nZm/phEWu/NZGn8AjAKuAr4fEW+v+Tyb\nXQH8HPhhdxtl5v8F9o+Iw2iE7Bu2s+kDEbEOeJHGlIfu5lMPAzY0LW+mEY4PyczNmfnTzGwO19+o\n+u/XwPeBydX6mcA1mflAZr5C47y9N7aea/7FzPx1N1NQuj13Tcd/uuY0ls3AuyJiSGb+JjMfqLEP\nAJl5TWZuqJ7LZcCRTe+g7Ey7s4BLM3NVU1sztnk9X5aZL23znDbQODeS+gjDtaTSnm+6/3IXy/tV\n9w+hMX94XRXwfg0EjQBax8E0Rj07PAUMoDGK2pU1mbmpafkQ4KKO41c1jKnaJSLObpp2sI7GyOMB\nTcd+eptjb1cVAjdUwf564F7g1HpPsyEivlTVcOY2IXZ7vg18isbI/rztbHNUZg4DBgHfAn7aPH1j\nG78BBjctf4nGqOldEfFkRMzZZvvmq2n8jt+f963OW/WH0Vq2Pu/NfduVbs9dzTaa/TGN8/FURPyf\niOhu2k2nanrQ3Goqx2+BldVDHa+TnWn3EGBe0/N5BHiNrV/PXT2nwcC6OvVK6h2Ga0mt8jSNt8yH\nNd3eUo26bqurMPkMjUDS4Q+ALWwd5rtr42ng89scf5/MvLEaPf87GuF0eBVAl9EI/wDP0ghzzcfe\nGdnU1g5FxF/QmEpwcjU/uo5vAxfQ+BDi77otJnMz8Pc0pnAcsZ3NHgLe0bTPhsy8KDPfBkwHPhMR\nJ9Woa6vzVs1BHg6sbi5pB21s99ztRBu/3zDz/sw8g8bUjluBm2vu+v8CZ9CY9jQUGFutjx2021Vt\nTwOnbPOcBlXv+HT5nKpR7fE03s2Q1EcYriW1yhXAn3V8ACwihkbEh7ez7Roa0zqar0t8I/BfI2Jc\nROxHY1rJTTXm13b4O2BWRBwbDftGxGkRMRjYl0aQWVPV9jG2Dp03A7MjYnQ1X3nbUdtOETEsIqZF\nxKCIGBARM2nMIf9B0zaDgI75wnvH1h/++zMaIe59mbm25nMjM39FY47upTvaNhofevwYjXcWtnd5\nujuq9jr2OT0ixkdEAOtpjLK+XqO0G4GPRcTkao70F4BFmbmym32eZ+tz39252ykRsVdEzIyIodUf\nGb+t+TygMWr8Co2R932q51Kn3eeB4bH1B3CvAD7fMS0qIkZUn0vozjHAyszs9p0TSb3LcC2pJTJz\nHvBXwHeqt9SX0Rid7Wrb3wGfB+6t3jY/jsYH2r5N40oivwI20fhQWN3jL6bxwcS/oTHl4XGqD91l\n5sPAXwMLaQShiTSmcnT4Oxrznn9O40Ns3+vmUAOB/0kjqL9Y1fihzGy+NN7LwMbq/qPVcocv0BgZ\nf7zp6hKX1HyOP6s+LLc9P4+IjTSe/znAH1VzpLtyA3Bq9aFKaHyI71+quhcCl2fm3TVq+hfgz4F/\novEOwNuprmzSjcuA66tzf2Z3524X/X/Ayup1OIvGvPA6bqAxxWU18DBv/EBol+1m5qM0/sh4snpO\nBwNfp3HFlrsiYkPV1rE7OP5MGqFcUh8S9abuSZL2dBHxBeCFzPxaq2vZ00XEgTQujfjubT5LIKnF\nDNeSJElSIU4LkSRJkgoxXEuSJEmFGK4lSZKkQgzXkiRJUiHb+5rgtnDAAQfk2LFjW12GJEmS3uSW\nLFnyYmaO2NF2bR2ux44dy+LFi1tdhiRJkt7kIqLWFzY5LUSSJEkqxHAtSZIkFWK4liRJkgpp6znX\nkiRJ7Wrz5s2sWrWKTZv8Bvu+ZNCgQYwePZqBAwfu0v6Ga0mSpBZYtWoVgwcPZuzYsUREq8sRkJms\nXbuWVatWMW7cuF1qw2khkiRJLbBp0yaGDx9usO5DIoLhw4fv1rsJhmtJkqQWMVj3Pbt7TgzXkiRJ\ne6j+/fszefLkztvKlSt3uo1169Zx+eWXdy4vWLCA008/vViNmcns2bMZP348kyZN4oEHHuhyuw98\n4AMceeSRTJgwgVmzZvHaa6+9YZtHH32U9773vey99958+ctfLlZjM+dcS5Ik9QFj59xetL2Vc0/b\n4TZvectbWLp06W4dpyNcX3DBBbvVToctW7YwYMDvI+qdd97JihUrWLFiBYsWLeL8889n0aJFb9jv\n5ptvZsiQIWQmM2bM4Lvf/S5nnXXWVtvsv//+fOMb3+DWW28tUmtXHLmWJElSp9dee42LL76Yo48+\nmkmTJnHllVcCsHHjRk466SSOOuooJk6cyPz58wGYM2cOTzzxBJMnT+biiy/u3HbGjBkcfvjhzJw5\nk8wEYMmSJRx//PG85z3vYdq0aTz77LMAnHDCCVx44YVMmTKFr3/961vVM3/+fM4++2wiguOOO451\n69Z17tdsyJAhQCOcv/rqq11O7zjwwAM5+uijd/lKIHU4ci1JkrSHevnll5k8eTIA48aNY968eVx9\n9dUMHTqU+++/n1deeYWpU6dy8sknM2bMGObNm8eQIUN48cUXOe6445g+fTpz585l2bJlnSPgCxYs\n4MEHH2T58uUcfPDBTJ06lXvvvZdjjz2WT3/608yfP58RI0Zw0003cemll3LNNdcA8Oqrr7J48eI3\n1Lh69WrGjBnTuTx69GhWr17NyJEj37DttGnT+Nd//VdOOeUUZsyY0RNdtkOGa0mSpD1UV9NC7rrr\nLh566CFuueUWANavX8+KFSsYPXo0l1xyCffccw/9+vVj9erVPP/88122e8wxxzB69GiAzrncw4YN\nY9myZbz//e8HGiPkzQH5Ix/5yG4/nx/+8Ids2rSJmTNn8pOf/KTzWL3JcC1JkqROmck3v/lNpk2b\nttX66667jjVr1rBkyRIGDhzI2LFjt3vJur333rvzfv/+/dmyZQuZyYQJE1i4cGGX++y7775drh81\nahRPP/105/KqVasYNWrUdusfNGgQZ5xxBvPnz29JuHbOtSRJkjpNmzaNb33rW2zevBmAxx57jJde\neon169dz4IEHMnDgQO6++26eeuopAAYPHsyGDRt22O5hhx3GmjVrOsP15s2bWb58+Q73mz59Ojfc\ncAOZyX333cfQoUPfMCVk48aNnfOwt2zZwu23387hhx++U8+7FEeuJUmS1OkTn/gEK1eu5KijjiIz\nGTFiBLfeeiszZ87kgx/8IBMnTmTKlCmd4XX48OFMnTqVI444glNOOYXTTuv6KiV77bUXt9xyC7Nn\nz2b9+vVs2bKFCy+8kAkTJnRbz6mnnsodd9zB+PHj2Weffbj22ms7H5s8eTJLly7lpZdeYvr06bzy\nyiu8/vrrnHjiicyaNQuAK664AoBZs2bx3HPPMWXKFH7729/Sr18/vva1r/Hwww93fhiyhOj49GY7\nmjJlSnY18V2SJKmve+SRR3jnO9/Z6jLUha7OTUQsycwpO9rXaSGSJElSIYZrSZIkqRDDtSRJklSI\n4VqSJEkqxHAtSZIkFWK4liRJkgoxXEuSJO2h+vfvz+TJkztvK1eu3Ok21q1bx+WXX965vGDBAk4/\n/fRiNWYms2fPZvz48UyaNIkHHnig2+2nT5/OEUccUaStXeGXyEiSJPUFlw0t3N76HW7ylre8haVL\nl+7WYTrC9QUXXLBb7XTYsmULAwb8PqLeeeedrFixghUrVrBo0SLOP/98Fi1a1OW+3/ve99hvv/22\n2/bOtLWrHLmWJElSp9dee42LL76Yo48+mkmTJnHllVcCja8YP+mkkzjqqKOYOHEi8+fPB2DOnDk8\n8cQTTJ48mYsvvrhz2xkzZnD44Yczc+ZMOr60cMmSJRx//PG85z3vYdq0aZ1fWX7CCSdw4YUXMmXK\nFL7+9a9vVc/8+fM5++yziQiOO+441q1b17lfs40bN/KVr3yFz33uc9t9bnXb2h3tPXL9zIPl/8pT\ne6rx17kkSdrayy+/zOTJkwEYN24c8+bN4+qrr2bo0KHcf//9vPLKK0ydOpWTTz6ZMWPGMG/ePIYM\nGcKLL77Icccdx/Tp05k7dy7Lli3rHAFfsGABDz74IMuXL+fggw9m6tSp3HvvvRx77LF8+tOfZv78\n+YwYMYKbbrqJSy+9lGuuuQaAV199la6+eXv16tWMGTOmc3n06NGsXr2akSNHbrXdn//5n3PRRRex\nzz77bPf51m1rd7R3uJYkSdIu62payF133cVDDz3ELbfcAsD69etZsWIFo0eP5pJLLuGee+6hX79+\nrF69mueff77Ldo855hhGjx4N0DmXe9iwYSxbtoz3v//9QGOEvDnUfuQjH9nl57F06VKeeOIJvvrV\nr+7SvPGSDNeSJEnqlJl885vfZNq0aVutv+6661izZg1Llixh4MCBjB07lk2bNnXZxt577915v3//\n/mzZsoXMZMKECSxcuLDLffbdd98u148aNYqnn366c3nVqlWMGjVqq20WLlzI4sWLGTt2LFu2bOGF\nF17ghBNOYMGCBTvd1u5yzrUkSZI6TZs2jW9961ts3rwZgMcee4yXXnqJ9evXc+CBBzJw4EDuvvtu\nnnrqKQAGDx7Mhg0bdtjuYYcdxpo1azrD9ebNm1m+fPkO95s+fTo33HADmcl9993H0KFD3zCN4/zz\nz+eZZ55h5cqV/OxnP+Md73jHG4J13bZ2lyPXkiRJ6vSJT3yClStXctRRR5GZjBgxgltvvZWZM2fy\nwQ9+kIkTJzJlyhQOP/xwAIYPH87UqVM54ogjOOWUUzjttNO6bHevvfbilltuYfbs2axfv54tW7Zw\n4YUXMmHChG7rOfXUU7njjjsYP348++yzD9dee23nY5MnT97h1U6uuOIKAGbNmtVtW6VEx6c329GU\ng/vn4vO2f7kV7UH8QKMkqc088sgjvPOd72x1GepCV+cmIpZk5pQd7eu0EEmSJKkQw7UkSZJUiOFa\nkiRJKsRwLUmS1CLt/Nm3N6vdPSeGa0mSpBYYNGgQa9euNWD3IZnJ2rVrGTRo0C634aX4JEmSWmD0\n6NGsWrWKNWvWtLoUNRk0aFDnt0vuCsO1JElSCwwcOJBx48a1ugwV5rQQSZIkqRDDtSRJklSI4VqS\nJEkqxHAtSZIkFWK4liRJkgoxXEuSJEmFGK4lSZKkQgzXkiRJUiGGa0mSJKkQw7UkSZJUiOFakiRJ\nKqRHw3VErIyIX0TE0ohYXK3bPyJ+FBErqp9vrdZHRHwjIh6PiIci4qierE2SJEkqrTdGrk/MzMmZ\nOaVangP8ODMPBX5cLQOcAhxa3c4DvtULtUmSJEnFtGJayBnA9dX964EPNa2/IRvuA4ZFxMgW1CdJ\nkiTtkgE93H4Cd0VEAldm5lXAQZn5bPX4c8BB1f1RwNNN+66q1j3btI6IOI/GyDb9h4xg7KZre7B8\ntY05t7e6AknSm9jKuae1ugS1iZ4O1/8hM1dHxIHAjyLi0eYHMzOr4F1bFdCvAth75KE7ta8kSZLU\nk3p0Wkhmrq5+vgDMA44Bnu+Y7lH9fKHafDUwpmn30dU6SZIkqS30WLiOiH0jYnDHfeBkYBlwG3BO\ntdk5wPzq/m3A2dVVQ44D1jdNH5EkSZL6vJ6cFnIQMC8iOo7zj5n5g4i4H7g5Ij4OPAWcWW1/B3Aq\n8DjwO+BjPVibJEmSVFyPhevMfBI4sov1a4GTulifwJ/2VD2SJElST/MbGiVJkqRCDNeSJElSIYZr\nSZIkqRDDtSRJklSI4VqSJEkqxHAtSZIkFWK4liRJkgoxXEuSJEmFGK4lSZKkQgzXkiRJUiGGa0mS\nJKkQw7UkSZJUiOFakiRJKsRwLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIhhmtJkiSp\nEMO1JEmSVIjhWpIkSSpkQKsL2B0TRw1l8dzTWl2GJEmSBDhyLUmSJBVjuJYkSZIKMVxLkiRJhRiu\nJUmSpEIM15IkSVIhhmtJkiSpEMO1JEmSVIjhWpIkSSrEcC1JkiQVYriWJEmSCjFcS5IkSYUYriVJ\nkqRCDNeSJElSIYZrSZIkqRDDtSRJklSI4VqSJEkqxHAtSZIkFWK4liRJkgoxXEuSJEmFGK4lSZKk\nQgzXkiRJUiGGa0mSJKkQw7UkSZJUiOFakiRJKsRwLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM\n15IkSVIhhmtJkiSpEMO1JEmSVIjhWpIkSSrEcC1JkiQVYriWJEmSCjFcS5IkSYUYriVJkqRCDNeS\nJElSIYZrSZIkqRDDtSRJklSI4VqSJEkqxHAtSZIkFWK4liRJkgoxXEuSJEmFGK4lSZKkQgzXkiRJ\nUiGGa0mSJKkQw7UkSZJUiOFakiRJKsRwLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIh\nhmtJkiSpkAGtLmC3PPMgXDa01VWolS5b3+oKJEmSOjlyLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmS\npEIM15IkSVIhhmtJkiSpEMO1JEmSVEitcB0Rb4+Ivav7J0TE7IgY1rOlSZIkSe2l7sj1PwGvRcR4\n4CpgDPCPPVaVJEmS1IbqhuvXM3ML8EfANzPzYmBkz5UlSZIktZ+64XpzRHwUOAf452rdwJ4pSZIk\nSWpPdcP1x4D3Ap/PzF9FxDjg2z1XliRJktR+BtTZKDMfBmY3Lf8K+KueKkqSJElqR7XCdURMBS4D\nDqn2CSAz8209V5okSZLUXmqFa+Bq4L8CS4DXeq4cSZIkqX3VDdfrM/POHq1EkiRJanN1w/XdEfEl\n4HvAKx0rM/OBHqlKkiRJakN1w/Wx1c8pTesS+MOy5UiSJEntq+7VQk7s6UIkSZKkdlf3aiHDgLOB\nsc37ZObs7e0jSZIk7WnqTgu5A7gP+AXwes+VI0mSJLWvuuF6UGZ+pkcrkSRJktpc3XD97Yj4JPDP\nbH21kF/vykEjYiWwgcY1s7dk5pSI2B+4icbUk5XAmZn5m11pX5IkSWqFfjW3exX4ErCQxhfJLAEW\n7+axT8zMyZnZcQWSOcCPM/NQ4MfVsiRJktQ26o5cXwSMz8wXe7CWM4ATqvvXAwuAz/bg8SRJkqSi\n6o5cPw78ruBxE7grIpZExHnVuoMy89nq/nPAQQWPJ0mSJPW4uiPXLwFLI+Jutp5zvauX4vsPmbk6\nIg4EfhQRjzY/mJkZEdnVjlUYPw+g/5ARjN107S6WoDeFObe3ugJtY+Xc01pdgiRJLVM3XN9a3YrI\nzNXVzxciYh5wDPB8RIzMzGcjYiTwwnb2vQq4CmDvkYd2GcAlSZKkVqj7DY3XlzpgROwL9MvMDdX9\nk4G/BG4DzgHmVj/nlzqmJEmS1BvqfkPjr2jMk95KZr5tF455EDAvIjqO/4+Z+YOIuB+4OSI+DjwF\nnLkLbUuSJEktU3dayJSm+4OADwP778oBM/NJ4Mgu1q8FTtqVNiVJkqS+oNbVQjJzbdNtdWZ+DfBT\nS5IkSVKTutNCjmpa7EdjJLvuqLckSZK0R6gbkP+66f4Wqq8nL16NJEmS1MbqXi3kxJ4uRJIkSWp3\n3YbriPhMd49n5lfKliNJkiS1rx2NXA/ulSokSZKkN4Fuw3Vm/kVvFSJJkiS1u1qX4ouI0RExLyJe\nqG7/FBGje7o4SZIkqZ3UCtfAtTS+nvzg6vb9ap0kSZKkSt1wPSIzr83MLdXtOmBED9YlSZIktZ26\n4XptRPxJRPSvbn8CrO3JwiRJkqR2Uzdc/2caXxrzHPAsMAM4t4dqkiRJktpS3W9o/EvgnMz8DUBE\n7A98mUboliRJkkT9ketJHcEaIDN/Dby7Z0qSJEmS2lPdcN0vIt7asVCNXNcd9ZYkSZL2CHUD8l8D\nCyPiu9Xyh4HP90xJkiRJUnuqFa4z84aIWAz8YbXqP2Xmwz1XliRJktR+ak/tqMK0gVqSJEnajrpz\nriVJkiTtgOFakiRJKsRwLUmSJBViuJYkSZIKaetrVU8cNZTFc09rdRmSJEkS4Mi1JEmSVIzhWpIk\nSSrEcC1JkiQVYriWJEmSCjFcS5IkSYUYriVJkqRCDNeSJElSIYZrSZIkqRDDtSRJklSI4VqSJEkq\nxHAtSZIkFWK4liRJkgoxXEuSJEmFGK4lSZKkQgzXkiRJUiGGa0mSJKkQw7UkSZJUiOFakiRJKsRw\nLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIhhmtJkiSpEMO1JEmSVIjhWpIkSSrEcC1J\nkiQVYriWJEmSCjFcS5IkSYUYriVJkqRCDNeSJElSIYZrSZIkqRDDtSRJklSI4VqSJEkqxHAtSZIk\nFWK4liRJkgoxXEuSJEmFGK4lSZKkQgzXkiRJUiGGa0mSJKkQw7UkSZJUiOFakiRJKsRwLUmSJBVi\nuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIhhmtJkiSpEMO1JEmSVIjhWpIkSSrEcC1JkiQVYriW\nJEmSCjFcS5IkSYUMaHUBu+WZB+Gyoa2uQq1y2fpWVyBJkrQVR64lSZKkQgzXkiRJUiGGa0mSJKkQ\nw7UkSZJUiOFakiRJKsRwLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIhhmtJkiSpEMO1\nJEmSVIjhWpIkSSrEcC1JkiQVYriWJEmSCjFcS5IkSYUYriVJkqRCDNeSJElSIYZrSZIkqRDDtSRJ\nklSI4VqSJEkqxHAtSZIkFWK4liRJkgppSbiOiGsi4oWIWNa0bv+I+FFErKh+vrUVtUmSJEm7qlUj\n19cBH9hm3Rzgx5l5KPDjalmSJElqGy0J15l5D/DrbVafAVxf3b8e+FCvFiVJkiTtpgGtLqDJQZn5\nbHX/OeCgrjaKiPOA8wD6DxnB2E3X9lJ56nPm3N7qCiRJUi9ZOfe0VpdQS5/8QGNmJpDbeeyqzJyS\nmVP67zO0lyuTJEmStq8vhevnI2IkQPXzhRbXI0mSJO2UvhSubwPOqe6fA8xvYS2SJEnSTmvVpfhu\nBBYCh0XEqoj4ODAXeH9ErADeVy1LkiRJbaMlH2jMzI9u56GTerUQSZIkqaC+NC1EkiRJamuGa0mS\nJKkQw7UkSZJUiOFakiRJKsRwLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIhhmtJkiSp\nEMO1JEmSVIjhWpIkSSrEcC1JkiQVYriWJEmSCjFcS5IkSYUYriVJkqRCDNeSJElSIYZrSZIkqRDD\ntSRJklSI4VqSJEkqxHAtSZIkFWK4liRJkgoZ0OoCdsfEUUNZPPe0VpchSZIkAY5cS5IkScUYriVJ\nkqRCDNeSJElSIYZrSZIkqRDDtSRJklSI4VqSJEkqxHAtSZIvqJAcAAAHoklEQVQkFWK4liRJkgox\nXEuSJEmFGK4lSZKkQgzXkiRJUiGGa0mSJKkQw7UkSZJUiOFakiRJKsRwLUmSJBViuJYkSZIKMVxL\nkiRJhRiuJUmSpEIM15IkSVIhhmtJkiSpEMO1JEmSVIjhWpIkSSrEcC1JkiQVYriWJEmSCjFcS5Ik\nSYUYriVJkqRCIjNbXcMui4gNwC9bXUebOAB4sdVFtAn7qh77qT77qj77qh77qT77qj77qnuHZOaI\nHW00oDcq6UG/zMwprS6iHUTEYvuqHvuqHvupPvuqPvuqHvupPvuqPvuqDKeFSJIkSYUYriVJkqRC\n2j1cX9XqAtqIfVWffVWP/VSffVWffVWP/VSffVWffVVAW3+gUZIkSepL2n3kWpIkSeoz2iJcR8QH\nIuKXEfF4RMzp4vG9I+Km6vFFETG296tsvRr99B8j4oGI2BIRM1pRY19Ro68+ExEPR8RDEfHjiDik\nFXX2BTX6alZE/CIilkbEzyLiXa2osy/YUV81bffHEZERsUd+Kr/Ga+rciFhTvaaWRsQnWlFnX1Dn\nNRURZ1b/Xi2PiH/s7Rr7ihqvq682vaYei4h1raizL6jRV38QEXdHxIPV/4OntqLOtpWZffoG9Aee\nAN4G7AX8HHjXNttcAFxR3T8LuKnVdffRfhoLTAJuAGa0uuY+3lcnAvtU98/fE19TO9FXQ5ruTwd+\n0Oq6+2pfVdsNBu4B7gOmtLruvthPwLnA37S61lbfavbVocCDwFur5QNbXXdf7atttv80cE2r6+6r\nfUVj7vX51f13AStbXXc73dph5PoY4PHMfDIzXwW+A5yxzTZnANdX928BToqI6MUa+4Id9lNmrszM\nh4DXW1FgH1Knr+7OzN9Vi/cBo3u5xr6iTl/9tmlxX2BP/SBHnX+rAP4H8FfApt4srg+p20+q11ef\nBP42M38DkJkv9HKNfcXOvq4+CtzYK5X1PXX6KoEh1f2hwDO9WF/ba4dwPQp4uml5VbWuy20ycwuw\nHhjeK9X1HXX6SQ0721cfB+7s0Yr6rlp9FRF/GhFPAP8LmN1LtfU1O+yriDgKGJOZt/dmYX1M3d+/\nP67ejr4lIsb0Tml9Tp2+egfwjoi4NyLui4gP9Fp1fUvtf9eraX7jgJ/0Ql19UZ2+ugz4k4hYBdxB\nY6RfNbVDuJZaJiL+BJgCfKnVtfRlmfm3mfl24LPA51pdT18UEf2ArwAXtbqWNvB9YGxmTgJ+xO/f\nmdQbDaAxNeQEGqOxfxcRw1paUd93FnBLZr7W6kL6sI8C12XmaOBU4NvVv2GqoR06ajXQPGoxulrX\n5TYRMYDGWxhre6W6vqNOP6mhVl9FxPuAS4HpmflKL9XW1+zs6+o7wId6tKK+a0d9NRg4AlgQESuB\n44Db9sAPNe7wNZWZa5t+5/4eeE8v1dbX1Pn9WwXclpmbM/NXwGM0wvaeZmf+rTqLPXdKCNTrq48D\nNwNk5kJgEHBAr1T3JtAO4fp+4NCIGBcRe9H4pbhtm21uA86p7s8AfpLVLPw9SJ1+UsMO+yoi3g1c\nSSNY76lzGKFeXzX/R34asKIX6+tLuu2rzFyfmQdk5tjMHEtjLv/0zFzcmnJbps5ramTT4nTgkV6s\nry+p8+/6rTRGrYmIA2hME3myN4vsI2r9HxgRhwNvBRb2cn19SZ2++jfgJICIeCeNcL2mV6tsY30+\nXFdzqD8F/JDGP7A3Z+byiPjLiJhebXY1MDwiHgc+A2z3ElhvVnX6KSKOruZPfRi4MiKWt67i1qn5\nmvoSsB/w3eqyTXvkHyo1++pT1SXAltL4/TtnO829qdXsqz1ezX6aXb2mfk5jDv+5ram2tWr21Q+B\ntRHxMHA3cHFm7mnv3O7M799ZwHf2wAG4TjX76iLgk9Xv4I3AuXtyn+0sv6FRkiRJKqTPj1xLkiRJ\n7cJwLUmSJBViuJYkSZIKMVxLkiRJhRiuJUmSpEIM15IkSVIhhmtJ6uMiYlhEXNC0fHBE3NIDx7ks\nIlZHxF92s83bq2u/byx9fEl6M/A615LUx0XEWOCfM/OIHj7OZcDGzPxyjW03ZuZ+PVmPJLUjR64l\nqe+bC3SMGH8pIsZGxDKAiDg3Im6NiB9FxMqI+FREfCYiHoyI+yJi/2q7t0fEDyJiSUT8tPoa6G5F\nxPHVMZdW7Q3u4ecpSW1vQKsLkCTt0BzgiMycDJ0j2c2OAN4NDAIeBz6bme+OiK8CZwNfA64CZmXm\niog4Frgc+MMdHPe/AX+amfdGxH7ApkLPR5LetAzXktT+7s7MDcCGiFgPfL9a/wtgUhWM/z3w3Yjo\n2GfvGu3eC3wlIv4B+F5mripctyS96RiuJan9vdJ0//Wm5ddp/DvfD1jXMfJdV2bOjYjbgVOBeyNi\nWmY+WqJgSXqzcs61JPV9G4Bdnu+cmb8FfhURHwaIhiN3tF9EvD0zf5GZfwXcD+xwnrYk7ekM15LU\nx2XmWhojx8si4ku72MxM4OMR8XNgOXBGjX0urI75ELAZuHMXjy1JewwvxSdJArwUnySV4Mi1JKnD\nRuC8Ol8iAzzfe2VJUvtw5FqSJEkqxJFrSZIkqRDDtSRJklSI4VqSJEkqxHAtSZIkFWK4liRJkgr5\n/wFRSVuQBVOgVwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe466b4e908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"results.plot.barh(figsize=(12, 6), ax=ax)\n",
"ax.set_title('Time to read 512 MB (shorter is faster)')\n",
"ax.set_ylabel('columns')\n",
"ax.set_xlabel('time [s]')\n",
"fig.savefig('feather-perf.png')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment