{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Comparing performance of btables in memory and cached disk" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial we are going to see the performance of the btable container using different compressors and compression levels, the only difference with \"Comparing speedups when using compression with blz btables stored in disk\" is that this one will work with memory and cached disk." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Reading data from disk is a really slow operation to improve loading times the operating system stores a copy of the read data into memory, so every other read is faster than the previous one. This is what is called caching and this is what I want to compare with working only with in memory BLZ. This is the normal scenario when working with data and this is why both are being compared." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd\n", "import numpy as np\n", "import pylab as plt\n", "import blz\n", "import sys\n", "import csv\n", "from time import time\n", "from shutil import rmtree\n", "from collections import defaultdict" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a btable in disk and a btable on memory." ] }, { "cell_type": "code", "collapsed": false, "input": [ "t1 = time()\n", "df = pd.read_hdf('h5/msft-18-SEP-2013-blosc9.h5', '/msft')\n", "t2 = time()\n", "\n", "print \"Reading h5: \" + str(t2 - t1)\n", "\n", "dt = np.dtype([(k, v if v.kind!='O' else 'S49') for k,v in df.dtypes.iteritems()])\n", "\n", "t1 = time()\n", "btm = blz.fromiter((i[1:] for i in df.itertuples()), dtype=dt, count=len(df), \n", " bparams=blz.bparams(clevel=0))\n", "t2 = time()\n", "\n", "print \"Converting h5 to btable in memory: \" + str(t2 - t1)\n", "\n", "#If the blz already exist, remove it\n", "rmtree('blz/msft-18-SEP-2013-blosc9.blz', ignore_errors=True)\n", "\n", "t1 = time()\n", "btd = btm.copy(rootdir='blz/msft-18-SEP-2013-blosc9.blz', bparams=blz.bparams(clevel=0))\n", "t2 = time()\n", "\n", "print \"Copying btable from memory to disk: \" + str(t2-t1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Reading h5: 4.99775981903\n", "Converting h5 to btable in memory: 7.79994988441" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Copying btable from memory to disk: 10.7896511555" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will take the [Open-High-Low-Close](http://en.wikipedia.org/wiki/Open-high-low-close_chart) points for that chart, for every level, for every compressor. This will be our \"heavy\" operation." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def get_OHLC_points(src):\n", " \n", " windows = []\n", " window_size = 79\n", " sample_size = 2455\n", " \n", " iter = src.where('(Type == \\'Trade\\')')\n", "\n", " for i in xrange(sample_size):\n", " \n", " local_max = - np.inf\n", " local_min = np.inf\n", " average_price = 0\n", " \n", " for j in xrange(window_size):\n", " \n", " current = iter.next()\n", " price = current[7]\n", " average_price += price\n", " \n", " if(price > local_max):\n", " local_max = price\n", " \n", " if(price < local_min):\n", " local_min = price\n", " \n", " if(j == 0):\n", " local_open = price\n", " \n", " if(j == (window_size - 1)):\n", " local_close = price\n", " \n", " windows.append([average_price/float(window_size), local_open, local_max, local_min, local_close]) " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's do the copy function." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def copy(src, memory, clevel=5, shuffle=True, cname=\"blosclz\"):\n", "\n", " \"\"\"\n", "\n", " Parameters\n", " ----------\n", " clevel : int (0 <= clevel < 10)\n", " The compression level.\n", " shuffle : bool\n", " Whether the shuffle filter is active or not.\n", " cname : string ('blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', others?)\n", " Select the compressor to use inside Blosc.\n", "\n", " \"\"\"\n", " if memory == True:\n", " copied = src.copy(bparams=blz.bparams(clevel=clevel, shuffle=shuffle, cname=cname))\n", " else:\n", " copied = src.copy(rootdir='blz/temp.blz', bparams=blz.bparams(clevel=clevel, shuffle=shuffle, cname=cname))\n", " \n", " copied.flush()\n", " \n", " return copied" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now we just need a benchmark function." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def benchmark(data, cmethods, memory):\n", " \n", " if memory == True:\n", " base_name = 'csv/bbtablem_'\n", " else:\n", " base_name = 'csv/bbtable_'\n", "\n", " for method in cmethods:\n", "\n", " myfile = open(base_name + method + '.csv', 'wb')\n", " wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)\n", " wr.writerow(['Compression level',\n", " 'Compressed size',\n", " 'Compression ratio',\n", " 'Compression time',\n", " 'OHLC time',\n", " 'Writing speed (MiB/s)',\n", " 'OHLC speed (MiB/s)'])\n", "\n", " for compression_level in xrange(0,10):\n", "\n", " #I use data so I only keep one copy in memory\n", " tc1 = time()\n", " data = copy(data, memory, compression_level, True, method)\n", " tc2 = time()\n", "\n", " #Now I get the poins and measure the time\n", " t1 = time()\n", " get_OHLC_points(data)\n", " t2 = time()\n", " \n", " #Uncompressed size in MiB\n", " uncompressed = data.nbytes/(2**20)\n", "\n", " #I should store stuff\n", " row = [compression_level, data.cbytes,\n", " round(data.nbytes/float(data.cbytes),3),\n", " str(tc2 - tc1),\n", " str(t2 - t1),\n", " uncompressed/(tc2 - tc1),\n", " uncompressed/(t2 - t1)]\n", "\n", " #Add it to the csv\n", " wr.writerow(row)\n", " rmtree('blz/temp.blz', ignore_errors=True)\n", "\n", " myfile.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have all the ingredients now, let's do some benchmarking." ] }, { "cell_type": "code", "collapsed": false, "input": [ "cmethods = ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib']\n", "\n", "t1 = time()\n", "benchmark(btd, cmethods, False)\n", "t2 = time()\n", "\n", "t3 = time()\n", "benchmark(btm, cmethods, True)\n", "t4 = time()\n", "\n", "print 'Cached disk: ' + str(t2-t1)\n", "print 'Memory only: ' + str(t4-t3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Cached disk: 748.564900875\n", "Memory only: 564.818388939\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see all the gathered data now." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 'blosclz data'\n", "print 'Memory'\n", "df = pd.read_csv('csv/bbtablem_blosclz.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "blosclz data\n", "Memory\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 0.681122 2.263231 675.356186 203.249245
1 1 62562582 7.716 0.804646 2.227441 571.679958 206.515003
2 2 60615376 7.964 0.828417 2.152618 555.276023 213.693286
3 3 60114378 8.030 0.841646 2.186049 546.548102 210.425294
4 4 28904306 16.701 0.960289 2.399268 479.022460 191.725150
5 5 27821399 17.351 1.134386 2.458255 405.505687 187.124603
6 6 27450920 17.585 1.142648 2.458005 402.573677 187.143643
7 7 27136857 17.789 1.140152 2.495144 403.454902 184.358105
8 8 27091198 17.819 1.157194 2.430481 397.513330 189.262952
9 9 27033395 17.857 1.172375 2.481087 392.365936 185.402592
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 0.681122 \n", "1 1 62562582 7.716 0.804646 \n", "2 2 60615376 7.964 0.828417 \n", "3 3 60114378 8.030 0.841646 \n", "4 4 28904306 16.701 0.960289 \n", "5 5 27821399 17.351 1.134386 \n", "6 6 27450920 17.585 1.142648 \n", "7 7 27136857 17.789 1.140152 \n", "8 8 27091198 17.819 1.157194 \n", "9 9 27033395 17.857 1.172375 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 2.263231 675.356186 203.249245 \n", "1 2.227441 571.679958 206.515003 \n", "2 2.152618 555.276023 213.693286 \n", "3 2.186049 546.548102 210.425294 \n", "4 2.399268 479.022460 191.725150 \n", "5 2.458255 405.505687 187.124603 \n", "6 2.458005 402.573677 187.143643 \n", "7 2.495144 403.454902 184.358105 \n", "8 2.430481 397.513330 189.262952 \n", "9 2.481087 392.365936 185.402592 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'blosclz data'\n", "print 'Disk'\n", "df = pd.read_csv('csv/bbtable_blosclz.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "blosclz data\n", "Disk\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 10.990172 3.124110 41.855578 147.241935
1 1 62562582 7.716 1.679541 2.767619 273.884374 166.207841
2 2 60615376 7.964 1.737121 2.741565 264.805984 167.787378
3 3 60114378 8.030 1.763058 2.736637 260.910313 168.089513
4 4 28904306 16.701 1.857233 2.958073 247.680279 155.506635
5 5 27821399 17.351 1.860526 2.963732 247.241898 155.209715
6 6 27450920 17.585 1.860842 2.876680 247.199925 159.906551
7 7 27136857 17.789 1.854447 2.967175 248.052367 155.029615
8 8 27091198 17.819 1.871443 3.153615 245.799627 145.864349
9 9 27033395 17.857 1.910575 2.970001 240.765226 154.882104
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 10.990172 \n", "1 1 62562582 7.716 1.679541 \n", "2 2 60615376 7.964 1.737121 \n", "3 3 60114378 8.030 1.763058 \n", "4 4 28904306 16.701 1.857233 \n", "5 5 27821399 17.351 1.860526 \n", "6 6 27450920 17.585 1.860842 \n", "7 7 27136857 17.789 1.854447 \n", "8 8 27091198 17.819 1.871443 \n", "9 9 27033395 17.857 1.910575 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 3.124110 41.855578 147.241935 \n", "1 2.767619 273.884374 166.207841 \n", "2 2.741565 264.805984 167.787378 \n", "3 2.736637 260.910313 168.089513 \n", "4 2.958073 247.680279 155.506635 \n", "5 2.963732 247.241898 155.209715 \n", "6 2.876680 247.199925 159.906551 \n", "7 2.967175 248.052367 155.029615 \n", "8 3.153615 245.799627 145.864349 \n", "9 2.970001 240.765226 154.882104 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'lz4 data'\n", "print 'Memory'\n", "df = pd.read_csv('csv/bbtablem_lz4.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "lz4 data\n", "Memory\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 0.709622 2.190826 648.232525 209.966452
1 1 31210120 15.467 0.699199 2.303638 657.895714 199.684153
2 2 31210120 15.467 0.757916 2.341326 606.927438 196.469864
3 3 31210120 15.467 0.761211 2.227152 604.300129 206.541820
4 4 31210120 15.467 0.766530 2.341871 600.106947 196.424139
5 5 31210120 15.467 0.759634 2.428854 605.554766 189.389730
6 6 31210120 15.467 0.770773 2.244157 596.803520 204.976739
7 7 31210120 15.467 0.766620 2.323864 600.036399 197.946181
8 8 31210120 15.467 0.764220 2.250569 601.920913 204.392768
9 9 31210120 15.467 0.762074 2.331698 603.615927 197.281108
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 0.709622 \n", "1 1 31210120 15.467 0.699199 \n", "2 2 31210120 15.467 0.757916 \n", "3 3 31210120 15.467 0.761211 \n", "4 4 31210120 15.467 0.766530 \n", "5 5 31210120 15.467 0.759634 \n", "6 6 31210120 15.467 0.770773 \n", "7 7 31210120 15.467 0.766620 \n", "8 8 31210120 15.467 0.764220 \n", "9 9 31210120 15.467 0.762074 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 2.190826 648.232525 209.966452 \n", "1 2.303638 657.895714 199.684153 \n", "2 2.341326 606.927438 196.469864 \n", "3 2.227152 604.300129 206.541820 \n", "4 2.341871 600.106947 196.424139 \n", "5 2.428854 605.554766 189.389730 \n", "6 2.244157 596.803520 204.976739 \n", "7 2.323864 600.036399 197.946181 \n", "8 2.250569 601.920913 204.392768 \n", "9 2.331698 603.615927 197.281108 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'lz4 data'\n", "print 'Disk'\n", "df = pd.read_csv('csv/bbtable_lz4.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "lz4 data\n", "Disk\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 9.310785 2.775670 49.405071 165.725750
1 1 31210120 15.467 1.642699 2.819540 280.026955 163.147179
2 2 31210120 15.467 1.629550 2.790243 282.286524 164.860184
3 3 31210120 15.467 1.624146 2.801503 283.225772 164.197579
4 4 31210120 15.467 1.620733 2.847433 283.822193 161.549011
5 5 31210120 15.467 1.620822 2.820628 283.806578 163.084253
6 6 31210120 15.467 1.630892 2.913791 282.054231 157.869940
7 7 31210120 15.467 1.651789 2.862687 278.485941 160.688186
8 8 31210120 15.467 1.661538 2.805433 276.851948 163.967557
9 9 31210120 15.467 1.624195 2.863090 283.217207 160.665572
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 9.310785 \n", "1 1 31210120 15.467 1.642699 \n", "2 2 31210120 15.467 1.629550 \n", "3 3 31210120 15.467 1.624146 \n", "4 4 31210120 15.467 1.620733 \n", "5 5 31210120 15.467 1.620822 \n", "6 6 31210120 15.467 1.630892 \n", "7 7 31210120 15.467 1.651789 \n", "8 8 31210120 15.467 1.661538 \n", "9 9 31210120 15.467 1.624195 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 2.775670 49.405071 165.725750 \n", "1 2.819540 280.026955 163.147179 \n", "2 2.790243 282.286524 164.860184 \n", "3 2.801503 283.225772 164.197579 \n", "4 2.847433 283.822193 161.549011 \n", "5 2.820628 283.806578 163.084253 \n", "6 2.913791 282.054231 157.869940 \n", "7 2.862687 278.485941 160.688186 \n", "8 2.805433 276.851948 163.967557 \n", "9 2.863090 283.217207 160.665572 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'lz4hc data'\n", "print 'Memory'\n", "df = pd.read_csv('csv/bbtablem_lz4hc.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "lz4hc data\n", "Memory\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 0.601254 2.203485 765.067693 208.760213
1 1 27466793 17.575 3.476439 2.412721 132.319307 190.656116
2 2 23961748 20.146 4.512663 2.281846 101.935373 201.591164
3 3 21717259 22.228 6.930293 2.223672 66.375262 206.865027
4 4 20475242 23.576 13.367165 2.200643 34.412683 209.029809
5 5 19908867 24.247 28.572774 2.280474 16.099242 201.712435
6 6 19752345 24.439 49.155402 2.253255 9.358076 204.149119
7 7 19711733 24.489 56.906914 2.264541 8.083376 203.131680
8 8 19710950 24.490 57.256365 2.243897 8.034041 205.000479
9 9 19710833 24.491 57.443949 2.261611 8.007806 203.394817
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 0.601254 \n", "1 1 27466793 17.575 3.476439 \n", "2 2 23961748 20.146 4.512663 \n", "3 3 21717259 22.228 6.930293 \n", "4 4 20475242 23.576 13.367165 \n", "5 5 19908867 24.247 28.572774 \n", "6 6 19752345 24.439 49.155402 \n", "7 7 19711733 24.489 56.906914 \n", "8 8 19710950 24.490 57.256365 \n", "9 9 19710833 24.491 57.443949 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 2.203485 765.067693 208.760213 \n", "1 2.412721 132.319307 190.656116 \n", "2 2.281846 101.935373 201.591164 \n", "3 2.223672 66.375262 206.865027 \n", "4 2.200643 34.412683 209.029809 \n", "5 2.280474 16.099242 201.712435 \n", "6 2.253255 9.358076 204.149119 \n", "7 2.264541 8.083376 203.131680 \n", "8 2.243897 8.034041 205.000479 \n", "9 2.261611 8.007806 203.394817 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'lz4hc data'\n", "print 'Disk'\n", "df = pd.read_csv('csv/bbtable_lz4hc.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "lz4hc data\n", "Disk\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 10.022066 3.445173 45.898720 133.520154
1 1 27466793 17.575 4.448363 2.818698 103.408825 163.195919
2 2 23961748 20.146 5.389405 2.779829 85.352650 165.477803
3 3 21717259 22.228 8.024240 2.839225 57.326301 162.016040
4 4 20475242 23.576 14.552245 2.809012 31.610243 163.758649
5 5 19908867 24.247 29.689302 2.799546 15.493796 164.312356
6 6 19752345 24.439 50.277322 2.786857 9.149254 165.060503
7 7 19711733 24.489 57.907075 2.704130 7.943762 170.110154
8 8 19710950 24.490 58.364596 2.765320 7.881490 166.346039
9 9 19710833 24.491 58.455211 2.771683 7.869273 165.964147
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 10.022066 \n", "1 1 27466793 17.575 4.448363 \n", "2 2 23961748 20.146 5.389405 \n", "3 3 21717259 22.228 8.024240 \n", "4 4 20475242 23.576 14.552245 \n", "5 5 19908867 24.247 29.689302 \n", "6 6 19752345 24.439 50.277322 \n", "7 7 19711733 24.489 57.907075 \n", "8 8 19710950 24.490 58.364596 \n", "9 9 19710833 24.491 58.455211 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 3.445173 45.898720 133.520154 \n", "1 2.818698 103.408825 163.195919 \n", "2 2.779829 85.352650 165.477803 \n", "3 2.839225 57.326301 162.016040 \n", "4 2.809012 31.610243 163.758649 \n", "5 2.799546 15.493796 164.312356 \n", "6 2.786857 9.149254 165.060503 \n", "7 2.704130 7.943762 170.110154 \n", "8 2.765320 7.881490 166.346039 \n", "9 2.771683 7.869273 165.964147 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'snappy data'\n", "print 'Memory'\n", "df = pd.read_csv('csv/bbtablem_snappy.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "snappy data\n", "Memory\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 0.604864 2.201925 760.501383 208.908111
1 1 410696358 1.175 0.851744 2.334054 540.068418 197.081988
2 2 410696358 1.175 0.853806 2.296802 538.764063 200.278470
3 3 410696358 1.175 0.862138 2.373132 533.557252 193.836669
4 4 410696358 1.175 0.869969 2.308243 528.754394 199.285774
5 5 410696358 1.175 0.869898 2.290146 528.797580 200.860547
6 6 410696358 1.175 0.860055 2.290641 534.849534 200.817166
7 7 410696358 1.175 0.872584 2.316078 527.169958 198.611623
8 8 410696358 1.175 0.865230 2.266900 531.650492 202.920282
9 9 410696358 1.175 0.865937 2.305180 531.216478 199.550571
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 0.604864 \n", "1 1 410696358 1.175 0.851744 \n", "2 2 410696358 1.175 0.853806 \n", "3 3 410696358 1.175 0.862138 \n", "4 4 410696358 1.175 0.869969 \n", "5 5 410696358 1.175 0.869898 \n", "6 6 410696358 1.175 0.860055 \n", "7 7 410696358 1.175 0.872584 \n", "8 8 410696358 1.175 0.865230 \n", "9 9 410696358 1.175 0.865937 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 2.201925 760.501383 208.908111 \n", "1 2.334054 540.068418 197.081988 \n", "2 2.296802 538.764063 200.278470 \n", "3 2.373132 533.557252 193.836669 \n", "4 2.308243 528.754394 199.285774 \n", "5 2.290146 528.797580 200.860547 \n", "6 2.290641 534.849534 200.817166 \n", "7 2.316078 527.169958 198.611623 \n", "8 2.266900 531.650492 202.920282 \n", "9 2.305180 531.216478 199.550571 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'snappy data'\n", "print 'Disk'\n", "df = pd.read_csv('csv/bbtable_snappy.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "snappy data\n", "Disk\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 10.879534 5.507512 42.281223 83.522286
1 1 410696358 1.175 7.985037 2.960860 57.607749 155.360266
2 2 410696358 1.175 11.170788 2.792554 41.178832 164.723768
3 3 410696358 1.175 11.086721 2.931666 41.491077 156.907375
4 4 410696358 1.175 10.727255 2.943897 42.881427 156.255466
5 5 410696358 1.175 7.165172 2.955973 64.199437 155.617123
6 6 410696358 1.175 7.418792 3.115795 62.004704 147.634867
7 7 410696358 1.175 7.775094 3.132531 59.163272 146.846116
8 8 410696358 1.175 7.291722 2.939524 63.085237 156.487925
9 9 410696358 1.175 6.927933 2.878196 66.397871 159.822333
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 10.879534 \n", "1 1 410696358 1.175 7.985037 \n", "2 2 410696358 1.175 11.170788 \n", "3 3 410696358 1.175 11.086721 \n", "4 4 410696358 1.175 10.727255 \n", "5 5 410696358 1.175 7.165172 \n", "6 6 410696358 1.175 7.418792 \n", "7 7 410696358 1.175 7.775094 \n", "8 8 410696358 1.175 7.291722 \n", "9 9 410696358 1.175 6.927933 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 5.507512 42.281223 83.522286 \n", "1 2.960860 57.607749 155.360266 \n", "2 2.792554 41.178832 164.723768 \n", "3 2.931666 41.491077 156.907375 \n", "4 2.943897 42.881427 156.255466 \n", "5 2.955973 64.199437 155.617123 \n", "6 3.115795 62.004704 147.634867 \n", "7 3.132531 59.163272 146.846116 \n", "8 2.939524 63.085237 156.487925 \n", "9 2.878196 66.397871 159.822333 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'zlib data'\n", "print 'Memory'\n", "df = pd.read_csv('csv/bbtablem_zlib.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "zlib data\n", "Memory\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 0.662771 2.162894 694.055729 212.678013
1 1 21562571 22.387 3.683232 3.536478 124.890311 130.072913
2 2 19985468 24.154 4.939962 3.484861 93.118127 131.999530
3 3 19364324 24.929 5.524262 3.473563 83.269038 132.428865
4 4 17011833 28.376 8.573870 3.662094 53.651385 125.611198
5 5 16773528 28.779 9.709417 3.655160 47.376687 125.849486
6 6 15251112 31.652 12.199962 3.398706 37.705035 135.345630
7 7 15156305 31.850 14.717500 3.480614 31.255308 132.160592
8 8 14295434 33.768 29.362271 3.468930 15.666363 132.605731
9 9 14114077 34.202 45.618963 3.359124 10.083526 136.940457
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 0.662771 \n", "1 1 21562571 22.387 3.683232 \n", "2 2 19985468 24.154 4.939962 \n", "3 3 19364324 24.929 5.524262 \n", "4 4 17011833 28.376 8.573870 \n", "5 5 16773528 28.779 9.709417 \n", "6 6 15251112 31.652 12.199962 \n", "7 7 15156305 31.850 14.717500 \n", "8 8 14295434 33.768 29.362271 \n", "9 9 14114077 34.202 45.618963 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 2.162894 694.055729 212.678013 \n", "1 3.536478 124.890311 130.072913 \n", "2 3.484861 93.118127 131.999530 \n", "3 3.473563 83.269038 132.428865 \n", "4 3.662094 53.651385 125.611198 \n", "5 3.655160 47.376687 125.849486 \n", "6 3.398706 37.705035 135.345630 \n", "7 3.480614 31.255308 132.160592 \n", "8 3.468930 15.666363 132.605731 \n", "9 3.359124 10.083526 136.940457 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'zlib data'\n", "print 'Disk'\n", "df = pd.read_csv('csv/bbtable_zlib.csv')\n", "df" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "zlib data\n", "Disk\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Compression levelCompressed sizeCompression ratioCompression timeOHLC timeWriting speed (MiB/s)OHLC speed (MiB/s)
0 0 485063744 0.995 9.947921 3.326485 46.240817 138.284098
1 1 21562571 22.387 4.717685 4.090439 97.505446 112.457371
2 2 19985468 24.154 4.840078 4.022526 95.039793 114.356003
3 3 19364324 24.929 5.575667 3.940279 82.501342 116.743002
4 4 17011833 28.376 8.509122 4.047293 54.059632 113.656216
5 5 16773528 28.779 9.763632 4.058696 47.113615 113.336894
6 6 15251112 31.652 12.165651 3.965459 37.811375 116.001708
7 7 15156305 31.850 14.992578 3.990026 30.681848 115.287469
8 8 14295434 33.768 29.675020 3.967705 15.501253 115.936038
9 9 14114077 34.202 45.902231 4.076327 10.021299 112.846692
\n", "

10 rows \u00d7 7 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ " Compression level Compressed size Compression ratio Compression time \\\n", "0 0 485063744 0.995 9.947921 \n", "1 1 21562571 22.387 4.717685 \n", "2 2 19985468 24.154 4.840078 \n", "3 3 19364324 24.929 5.575667 \n", "4 4 17011833 28.376 8.509122 \n", "5 5 16773528 28.779 9.763632 \n", "6 6 15251112 31.652 12.165651 \n", "7 7 15156305 31.850 14.992578 \n", "8 8 14295434 33.768 29.675020 \n", "9 9 14114077 34.202 45.902231 \n", "\n", " OHLC time Writing speed (MiB/s) OHLC speed (MiB/s) \n", "0 3.326485 46.240817 138.284098 \n", "1 4.090439 97.505446 112.457371 \n", "2 4.022526 95.039793 114.356003 \n", "3 3.940279 82.501342 116.743002 \n", "4 4.047293 54.059632 113.656216 \n", "5 4.058696 47.113615 113.336894 \n", "6 3.965459 37.811375 116.001708 \n", "7 3.990026 30.681848 115.287469 \n", "8 3.967705 15.501253 115.936038 \n", "9 4.076327 10.021299 112.846692 \n", "\n", "[10 rows x 7 columns]" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's do some more plotting. For that I first need to make some dictionaries out of this data. I will create dictionaries of the disk benchmark too, so we can easily compare." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def get_dict(filename):\n", " \n", " columns = defaultdict(list)\n", " with open(filename) as f:\n", " reader = csv.reader(f)\n", " reader.next()\n", " for row in reader:\n", " for (i,v) in enumerate(row):\n", " if i == 1:\n", " columns[i].append(float(v)/131072)\n", " continue\n", " columns[i].append(v)\n", " return columns\n", "\n", "#In memory csv\n", "blosclzm = get_dict('csv/bbtablem_blosclz.csv')\n", "lz4m = get_dict('csv/bbtablem_lz4.csv')\n", "lz4hcm = get_dict('csv/bbtablem_lz4hc.csv')\n", "snappym = get_dict('csv/bbtablem_snappy.csv')\n", "zlibm = get_dict('csv/bbtablem_zlib.csv')\n", "\n", "#In disk\n", "blosclz = get_dict('csv/bbtable_blosclz.csv')\n", "lz4 = get_dict('csv/bbtable_lz4.csv')\n", "lz4hc = get_dict('csv/bbtable_lz4hc.csv')\n", "snappy = get_dict('csv/bbtable_snappy.csv')\n", "zlib = get_dict('csv/bbtable_zlib.csv')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we are ready to plot." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "\n", "#Matplotlib magic\n", "fig = plt.figure(num=None, figsize=(18, 9), dpi=80, facecolor='w', edgecolor='k')\n", "ax = fig.add_subplot(111)\n", "ax1 = fig.add_subplot(231)\n", "ax2 = fig.add_subplot(232)\n", "ax3 = fig.add_subplot(233)\n", "ax4 = fig.add_subplot(234)\n", "ax5 = fig.add_subplot(235)\n", "plt.subplots_adjust(wspace=0.6, hspace=0.6)\n", "ax.spines['top'].set_color('none')\n", "ax.spines['bottom'].set_color('none')\n", "ax.spines['left'].set_color('none')\n", "ax.spines['right'].set_color('none')\n", "ax.tick_params(labelcolor='w', top='off', bottom='off', left='off', right='off')\n", "ax.set_xlabel('Compression ratio')\n", "ax.set_ylabel('Compression level')\n", "\n", "\n", "#blosclz\n", "ax1.set_title('blosclz')\n", "ax1.plot(blosclzm[2][1:], blosclzm[0][1:], 'bo-')\n", "ax1.plot(blosclz[2][1:], blosclz[0][1:], 'ro-')\n", "\n", "#lz4\n", "ax2.set_title('lz4')\n", "ax2.plot(lz4m[2][1:], blosclzm[0][1:], 'bo-')\n", "ax2.plot(lz4[2][1:], blosclz[0][1:], 'ro-')\n", "\n", "#lz4hc\n", "ax3.set_title('lz4hc')\n", "ax3.plot(lz4hcm[2][1:], lz4hcm[0][1:], 'bo-')\n", "ax3.plot(lz4hc[2][1:], lz4hc[0][1:], 'ro-')\n", "\n", "#snappy\n", "ax4.set_title('snappy')\n", "ax4.plot(snappym[2][1:], snappym[0][1:], 'bo-')\n", "ax4.plot(snappy[2][1:], snappy[0][1:], 'ro-')\n", "\n", "#zlib\n", "ax5.set_title('zlib')\n", "ax5.plot(zlibm[2][1:], zlibm[0][1:], 'bo-', label='Memory')\n", "ax5.plot(zlib[2][1:], zlib[0][1:], 'ro-', label='Disk')\n", "\n", "#Legend\n", "ax5.legend(bbox_to_anchor=(2, 1))\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAABCMAAAIwCAYAAAC83aHHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4VOX5xvF7shFCSIAEQhYCJCMQtiSAgCgayyJYF0Cr\nVrAuuFQbq1QsLvXXcUGJxCpItdLivtZacCmiRYwsFgEhKLjAhAQIO4EkhKyTOb8/KCmRhOxzZvl+\nrovrCieTvPck533OzJNz3mMxDMMQAAAAAACAi/iZHQAAAAAAAPgWmhEAAAAAAMClaEYAAAAAAACX\nohkBAAAAAABcimYEAAAAAABwKZoRAAAAAADApWhGoMl69eqlzz777LTtWVlZ6tGjR5uNm5aWpkWL\nFrXZ9wcAtI76jhMAAM/W0vp+ww036KGHHmrFRPBkNCPQZBaLRRaLxWfGBQA0TVPq9SOPPCI/Pz+t\nWLGijVMBAFqqOfX91OYFr+dxKpoRAADAFDk5OfrHP/6hmJgYs6MAAFrRqfWd5gPqQzMCzbJu3ToN\nGDBAXbp00U033aSKiorTHvP9998rLS1NnTt31sCBA/Xhhx/WfG7p0qUaMGCAwsLCFBcXp6eeeqrm\nc++//75SUlIUHh4uq9WqTz/99LTvnZycrI4dO9b88/Pz08qVK9vmyQIAmswwDHXu3LmmToeGhsrP\nz0+7du2qeUx6eroyMjIUGBhoYlIAQFO0tL4fOXJEl1xyicLCwjRy5Ejt2LGj5nNbt27VuHHjFBER\noe7du+uJJ55wyXOCOWhGoMkMw9Cbb76pTz/9VDk5Odq2bZsee+yxWl3PqqoqXXrppZowYYIOHTqk\nZ599VlOnTtX27dslSdOnT9fChQtVXFysrVu36mc/+5mkE02O66+/Xk899ZSKioq0cuVK9ezZ87QM\nmzdv1rFjx3Ts2DE99dRT6tevn4YMGeKaHwAAoEEWi0VHjx6tqdW//e1vdf755ys2NlaS9O677yo4\nOFgTJ040OSkAoClaUt8Nw9Dbb78tm82mo0ePymq16sEHH5QkHTt2TGPHjtXFF1+sffv2yW63a8yY\nMS59bnAtmhFoMovFovT0dMXGxqpz58568MEH9dZbb9V6zNq1a3X8+HHdd999CggI0IUXXqhLLrlE\nb775piQpKChIW7duVXFxscLDw5WamipJWrRokaZPn15TeGJiYtS3b996s6xevVoPPfSQPvjgA4WG\nhrbRMwYAtMQ777yjt956S++99578/f117NgxPfjgg5o3b57Z0QAALdDU+m6xWDRlyhQNGzZM/v7+\nmjp1qrKzsyVJH330kWJiYjRjxgwFBQUpNDRUw4cPd+XTgYvRjECznHrXjPj4eO3du7fW5/fu3Xva\nnTV69uypPXv2SJLee+89LV26VL169VJaWprWrl0rScrPz1diYmKjMuzevVtXX321Xn31VVmt1pY8\nHQBAG9m0aZPuvPNOLVmyRBEREZIkm82m6667TvHx8TWPMwzDrIgAgGZobn2Pioqq+bh9+/YqKSmR\ndOK1fUJCgguSw13QjECznHpN2K5du05bfCwmJka7d++uVXx27typuLg4SdKwYcO0ZMkSHTp0SJMm\nTdJVV10l6USTw263Nzh+WVmZJk2apBkzZuiiiy5qjacEAGhlBw8e1OTJk/Xcc88pOTm5ZvuKFSs0\nf/58RUdHKzo6Wrt379ZVV12luXPnmpgWANBYbVHf4+Pja60fAe9HMwJNZhiG/vznP2vPnj06cuSI\nZs+erWuuuabWY0aMGKGQkBA9+eSTqqqqUlZWlj766CNdc801qqqq0htvvKGioiL5+/urY8eO8vf3\nl3RiLYmXXnpJK1askNPp1J49e/Tjjz+eluGmm25SUlKSZs6c6ZLnDABoGsMwdOWVV2ratGm68sor\na33us88+09atW7V582ZlZ2crJiZGCxcu1B133GFSWgBAYzWnvv/mN7+p+dr6/PznP9e+ffs0b948\nVVRU6NixY1q3bl2bPheYi2YEmsxisWjq1KkaP368EhMTddZZZ+kPf/iDDMOoWcQyKChIH374oT7+\n+GN17dpV6enpeu2119SnTx9J0uuvv67evXsrPDxcCxcu1BtvvCFJOvvss/XSSy9pxowZ6tSpk9LS\n0mqdhXHSO++8oyVLltS6o8aaNWtc90MAAJxRXl6eVq9erWeeeaamToeFhSk/P19dunRRt27d1K1b\nN0VFRcnf31+dO3dWhw4dzI4NAGhAc+p7SEiIpBPvI356q8+T/+/YsaP+/e9/68MPP1R0dLT69Omj\nrKwsVz89uJDFcIOLNOfNm6e//e1vMgxDt9xyi+666y6zIwEA2hi1HwB8C3UfwKlMPzNiy5Yt+tvf\n/qb169dr8+bN+uijj5STk2N2LABAG6L2A4Bvoe4D+CnTmxE//PCDRowYoeDgYPn7++uCCy7QP//5\n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\n8WbNmik1NbVUQwEAAAAAAM9VYDEiPT29wAdlZmaWShgAAOB5HnjgAb3wwguSpHXr1qlhw4b22+rV\nq6dVq1aZFQ0AAJikwGJEq1atNGvWrKuOz549WzfddFOphgIAAJ7DYrHIYrFIurQR9u7du/O9DQAA\nlB0FXtrzjTfeUN++fTV//nx78eHHH39UVlaWPv/8c6cFBAAA7s+Bi3cBAIAypMCZETVr1tT333+v\nCRMmqF69eqpfv74mTJig9evXKzQ01JkZ4UISEhIUHh6ugIAANWzYUKtXr1ZcXJz69++voUOHKiAg\nQE2aNNGPP/5of0x8fLyioqIUEBCgxo0b64svvrDf9v777+uWW27RqFGjFBgYqEaNGmn16tX2261W\nq8aNG6fY2FhVqVJFd911l06fPi1J6t27t2bMmJEnX7NmzbRo0aJSfhcAAPlZuHChKleubP/w9/dX\np06d8twnOTlZtWvXznNs48aNaty4sapWraphw4YpKyvLmbEBAIAJCixGSJemTnbu3FmPP/64Ro0a\npc6dOzsrF1zQr7/+qjfffFObN2/W2bNntWLFCtWrV0+S9OWXX2rAgAE6c+aM7rjjDo0cOdL+uKio\nKH377bc6e/asJkyYoEGDBunYsWP22zdu3KioqCilpaXppZdeUr9+/fLsWTJ37ly99957OnLkiHx8\nfPT4449LurQGed68efb7bd++XYcPH1bv3r1L+Z0AAOTn3nvv1blz53Tu3DkdPnxYERERuv/++6/5\nGMMw9NFHH2nFihVKSUnRnj179MorrzgpMQAAMMs1ixHAX3l7eysrK0s7d+7UxYsXVadOHUVEREi6\ntAa4Z8+eslgsGjRokLZv325/3D333KOaNWtKkvr3768bbrhBGzZssN9evXp1PfHEE/L29lb//v11\n4403asmSJZIuFcSGDBmi6OhoVahQQS+//LI++eQTGYahPn36aM+ePUpJSZF0qWhx3333ycenwNVH\nAAAnyM3N1YABA9SpUycNHz78mve1WCwaOXKkwsLCFBQUpPHjx+vjjz92UlIAAGAWihFwWFRUlN54\n4w3FxcWpRo0aGjBggI4cOSJJqlGjhv1+FSpUUGZmpnJzcyVJH374oWJiYhQUFKSgoCD9/PPPSktL\ns98/LCwsz+vUrVvX/ryS8kznrVOnji5evKiTJ0/K399f/fv319y5c2UYhhYsWKDBgweXyvcOAHDc\n+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\n1EiHDx92eg5JOnjwoJYtW6YHH3xQRjFX3hQ1x5kzZ7Ru3ToNGzZMkuTj46MqVao4PUdAQIB8fX2V\nkZEhm82mjIwMhYWFFTmHI1natWtn/15jY2N18OBBSc5vqwXlcHZbLSiHVLJtFZ6hoPbZrVs3eXld\nOk1d2Y6cmUOSnnrqKb322mul+vrXynHo0CG99dZbGjdunH3Mq1atmik5QkND7f/5T09PL/b46qgK\nFSpIkrKzs5WTk6OgoCAtXrxYQ4cOlSQNHTpUX3zxhdNzVK1a1elttaAcknPban45goKCnN5WAQDu\nySU2sLxehw4dUu3ate1fh4eH69ChQyYmunSJuq1btyo2NtaU13/yySc1ZcoU+y9DZkhNTVW1atX0\n97//XS1bttTw4cOVkZHh9BxVq1bVmDFjVKdOHdWqVUuBgYHq2rWr017/3XffVa9evSSZ21b/muOv\nnN1Wr8zhCm0Vrqug9jlnzpx827MzcixatEjh4eFq1qyZ014/vxx79uzR2rVr1bZtW1mtVm3evNnp\nOdq2bav4+Hj7GPvMM89o8uTJTsmQm5urFi1aqEaNGvblI8eOHVONGjUkSTVq1NCxY8ecniM6OjrP\n7c5qq/nlMKOt5vdzMbOtAgDch1v+NWCxWMyOkMf58+d1zz33aOrUqapUqZLTX3/JkiWqXr26YmJi\nTP1Ps81m05YtW/Too49qy5YtqlixouLj452eIyUlRW+88Yb279+vw4cP6/z585o/f75TXnvNmjWa\nM2eOfW8Is9rqlTkuc3ZbvTKHq7RVuKaC2uekSZNUrlw53X///U7P4eXlpVdffVUvvfSS/XZntd2/\n5qhcubJsNptOnz6t9evXa8qUKerfv7/Tc1SqVEn/+Mc/NG3aNB04cED/+te/7LPhSpuXl5e2bdum\ngwcPau3atVqzZk2e2y0Wi1PG3CtzJCcn229zZlu9MseyZcs0efJkp7fV/N4Ps9oqAMC9uGUxIiws\nTH/88Yf96z/++EPh4eGmZLl48aLuvvtuDRo0SHfddZcpGb7//nstXrxY9evX14ABA7R69WoNGTLE\n6TnCw8MVHh6u1q1bS5Luuecebdmyxek5Nm/erJtvvlnBwcHy8fFRv3799P3335f66/70008aPny4\nFi9ebF/CYEZbzS+H5Py2ml8OV2mrcD0Ftc/3339fy5Ytc1pB8cocKSkp2r9/v5o3b6769evr4MGD\nuummm3T8+HGn5pAujbH9+vWTJLVu3VpeXl5KS0tzeo6NGzeqb9++ki6N8xs3bizVDFcyi3NQAAAJ\nqUlEQVSqUqWKevfurR9//FE1atTQ0aNHJUlHjhxR9erVnZ7j8n/9nd1Wr8yxZcsWpaamOr2tXplj\n8+bNprRVAID7cYtixJWV/VatWum3337T/v37lZ2drYULF+qOO+5weg7DMPSPf/xD0dHRGj16dKm/\nfkE5Xn31Vf3xxx9KTU3VggUL1LlzZ3344YdOz1GzZk3Vrl1be/bskSStXLlSjRs3dnqOhg0bav36\n9frzzz9lGIZWrlx51TTaknbgwAH169dP8+bNU1RUlP24s9tqQTmc3VYLymFWW4VrK6h9JiUlacqU\nKVq0aJH8/f1NydG0aVMdO3ZMqampSk1NVXh4uLZs2VKqf/QW9H7cddddWr16tSRpz549ys7OVnBw\nsNNzREVF6ZtvvpEkrV69Wg0aNCi1DJedPHnSfqWMP//8U19//bViYmJ0xx136IMPPpAkffDBB6Ve\naC0oh7Pban452rVr5/S2WtD74ey2CgBwU87eMfOv7rvvPiM0NNTw9fU1wsPDjXfffdd46623jLfe\nesswjEs7eYeHhxsBAQFGYGCgUbt2bePcuXOGYVzawbtBgwZGZGSk8eqrr5qSY926dYbFYjGaN29u\ntGjRwmjRooWxfPlyU96Py5KTk4t9hYLi5Ni2bZvRqlUro1mzZkbfvn2LdTWN4uRISEgwoqOjjSZN\nmhhDhgyx7+hdWln+8Y9/GFWrVrW3g9atW9sf68y2WlAOZ7fVa70fl5VEW4VnyK99Llu2zIiKijLq\n1KljP/bII4+YkuOv6tevX+pXKCiov2ZnZxuDBg0ymjRpYrRs2dJYs2aN03MsW7bM2LRpk9GmTRuj\nefPmRtu2bY0tW7aUag7DMIyffvrJiImJMZo3b240bdrUeO211wzDMIy0tDSjS5cuxg033GB069bN\nOH36/7V3byFRrX0cx79L81DaxojMCALNSChntEnF8JiZkWlRIGVUKhkRhF4UDR1IKMJOKHaTCFFK\nWEonxZu60EoJmmxoKhQ8pF5UJPaGnTDG5r0Ih07u3Y7d9Lrf3+dq1lrzrOe/DjfrN8+z5j+/pQ5P\n36vj1fE5T9yr49Xh6XtVREQmJsPl0sRtEREREREREfGcCTFNQ0RERERERET+PRRGiIiIiIiIiIhH\n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\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Above we can see that both methods (Disk and memory) get the same compression ratio, this was expected because this only depends on the compressor. I only used it to show that everything should work ok despite where it is stored." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Matplotlib magic\n", "fig = plt.figure(num=None, figsize=(18, 9), dpi=80, facecolor='w', edgecolor='k')\n", "ax = fig.add_subplot(111)\n", "ax1 = fig.add_subplot(231)\n", "ax2 = fig.add_subplot(232)\n", "ax3 = fig.add_subplot(233)\n", "ax4 = fig.add_subplot(234)\n", "ax5 = fig.add_subplot(235)\n", "plt.subplots_adjust(wspace=0.6, hspace=0.6)\n", "ax.spines['top'].set_color('none')\n", "ax.spines['bottom'].set_color('none')\n", "ax.spines['left'].set_color('none')\n", "ax.spines['right'].set_color('none')\n", "ax.tick_params(labelcolor='w', top='off', bottom='off', left='off', right='off')\n", "ax.set_ylabel('Compression time (s)')\n", "ax.set_xlabel('Compression ratio')\n", "\n", "#blosclz\n", "ax1.set_title('blosclz')\n", "ax1.plot(blosclzm[2][1:], blosclzm[3][1:], 'bo-')\n", "ax1.plot(blosclz[2][1:], blosclz[3][1:], 'ro-')\n", "\n", "#lz4\n", "ax2.set_title('lz4')\n", "ax2.plot(lz4m[2][1:], blosclzm[3][1:], 'bo-')\n", "ax2.plot(lz4[2][1:], blosclz[3][1:], 'ro-')\n", "\n", "#lz4hc\n", "ax3.set_title('lz4hc')\n", "ax3.plot(lz4hcm[2][1:], lz4hcm[3][1:], 'bo-')\n", "ax3.plot(lz4hc[2][1:], lz4hc[3][1:], 'ro-')\n", "\n", "#snappy\n", "ax4.set_title('snappy')\n", "ax4.plot(snappym[2][1:], snappym[3][1:], 'bo-')\n", "ax4.plot(snappy[2][1:], snappy[3][1:], 'ro-')\n", "\n", "#zlib\n", "ax5.set_title('zlib')\n", "ax5.plot(zlibm[2][1:], zlibm[3][1:], 'bo-', label='Memory')\n", "ax5.plot(zlib[2][1:], zlib[3][1:], 'ro-', label='Disk')\n", "\n", "#Legend\n", "ax5.legend(bbox_to_anchor=(2, 1))\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nmTMqLS3VmTNn1K1bN1NjGj16tDp27Gi3bd26dYqPj5ckxcfHa+3atWaEJslxfDExMWrWzHYYjhgx\nQuKibO4AACAASURBVEeOHDEjNEmO45Oku+++W4899pgJEdlzFN9zzz2n+++/X82bN5ckde3a1YzQ\nJDmOLyQkpCJfFBQUmN5HAFeoLXcYF7kKctu2berVq5fCw8PVvHlzXX/99XrvvfdcFaZbOPu3qO9+\nns7ZfN0UjwmgNrXlC8mWC9asWaMbbrjBLe264/OKo3b379+v0aNHS5KuuOIKvfPOO43aZnBwsIYM\nGSJJatu2rfr166ejR4+6/PuBo3aPHTumvn37qk+fPo3aVl3adfX3jdrarbpkeWFhobp06eKWdiXX\nfn+p7biS6n8er7UY8cknn2jy5MkaM2aM3nzzTR0+fFiHDh3SG2+8odGjR2vy5MnasmVLA97GhR08\neFBdu3bVzJkzNXToUN166606c+aMy9qrr06dOumee+5Rjx49FBoaqsDAQF1xxRVmh1VDTk6OrFar\nJMlqtSonJ8fkiGr34osv6qqrrjI7DDvvvfeewsLCNHjwYLNDcWj//v3KyMjQyJEjFR0drS+++MLs\nkOwkJSVV9JM//elPWrZsmdkhAW6zYsUKRUZGavbs2Q6HwB49elTdu3eveBwWFlZxMm9qLva3kCSL\nxaIrrrhCw4YN09/+9jc3R+h6dcnXvnRMABfyySefyGq1KiIiwi3tmfV5ZcCAARUFx7fffrvRh/FX\ndejQIe3YsUMjRoxw6/eDqu26U23tuvr7RvV2FyxYoB49emjVqlW677773NKuO7+/nG935MiRkup2\nvq+q1mLEu+++qyeeeEK7d+/WqlWrtGzZMiUlJWnVqlXavXu3/vznP+uf//xn472TakpLS7V9+3bd\nfvvt2r59u9q0aaOkpCSXtVdfmZmZ+stf/qJDhw7p2LFjKiws1GuvvWZ2WBdksVhksVjMDsOhJUuW\nqEWLFrrxxhvNDqXCmTNntHTpUi1atKhim6f9r11paal+/PFHbd26VY8//rimTZtmdkh2Zs+ereTk\nZB0+fFhPPfVUxUgnoKm77bbbdPDgQe3cuVMhISG65557auzjqfm4sdXlbyFJn376qXbs2KEPPvhA\nzzzzjD755BM3R+padcnXvnJMABfzxhtvuPUzoVmfV1588UU9++yzGjZsmAoLC9WiRQuXtFNYWKhr\nr71Wy5cvt/vfesm13w8KCws1depULV++XG3btnVJG/Vp19XfNxy1u2TJEh0+fFg333yz7rrrLpe3\n26xZM7d9f6n+fut6vq+q1mLEk08+qd69e9f6i3369NGTTz7pXOR1EBYWprCwMA0fPlySNHXqVJdM\ndOKsL774Qr/4xS/UuXNn+fv765prrtFnn31mdlg1WK1WHT9+XJKUnZ2toKAgkyOq6eWXX9b69es9\nrpiTmZmpQ4cOKTLy/7N373FR1fkfx9/D3VQUUUDxgmKm4AW8dE8xAy3S1HY180K5qbWbly5rmV3U\ncsWstrR219wuppbW/jYzMTVLvHTTEkxdTSWRVMALICqCAuf3h+tsJDijOHNmhtfz8eDxGL5z5sx7\neJzvwHz4XjqpZcuWOnDggLp06aLDhw+bHc2qadOmGjhwoCSpW7du8vLy0rFjx0xO9T+bNm3SgAED\nJJ3rw5s2bTI5EeAcISEh1j/wHnjggUqv/fDw8Ar/Bfvll1/UtGlTZ8Z0Cnt+FtK5YdLSuekLAwYM\n8Lj3C3ver2vKNQFcTGlpqT7++GMNHjzYac9p1t8r11xzjVatWqXvv/9e99xzj0NGgpw9e1Z33323\nhg8frv79+0tyzueD8887bNgw6/M6Q1XP6+jPG7Ze77333uuQhVF/+7zO+vxS2eu19/f9r9lcM+LV\nV1/V8ePHZRiG/vCHPyg2NlarVq2q/iuwISwsTM2aNdPu3bslSWvWrFF0dLTDn9debdu21bfffqvT\np0/LMAytWbNGUVFRZse6QL9+/TR//nxJ0vz58536ZmCPlStXatasWfrkk08UEBBgdpwKOnTooNzc\nXO3bt0/79u1T06ZNtWXLFpcq6PTv319ffvmlJGn37t06c+aMgoODTU71P61bt9a6deskSV9++aVD\n5wkCriQ7O9t6++OPP650l56uXbtqz549yszM1JkzZ7RkyRL169fPmTGdwp6fRVFRkXUV+VOnTmn1\n6tWVHufO7Hm/rinXBHAxa9asUbt27dSkSROnPadZf68cOXJEklReXq4XXnhBDz300BU9//nPb1FR\nUZowYYK13dGfD6p63t8ec6VV9byO/rxR1fPu2bPHevuTTz654rvDVPa8zvj8UtXrtef3fWUnu6gO\nHToYhmEYK1euNPr3729s27bNiImJuaRVMi9Xenq60bVrV6Njx47GgAEDXGo3DcMwjJkzZxpRUVFG\n+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\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can see that working with the dataset in memory is faster than reading it from disk. Due to the bigger scale of zlib and lz4hc we cannot appreciate it as well on those compressors." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Matplotlib magic\n", "fig = plt.figure(num=None, figsize=(18, 9), dpi=80, facecolor='w', edgecolor='k')\n", "ax = fig.add_subplot(111)\n", "ax1 = fig.add_subplot(231)\n", "ax2 = fig.add_subplot(232)\n", "ax3 = fig.add_subplot(233)\n", "ax4 = fig.add_subplot(234)\n", "ax5 = fig.add_subplot(235)\n", "plt.subplots_adjust(wspace=0.6, hspace=0.6)\n", "ax.spines['top'].set_color('none')\n", "ax.spines['bottom'].set_color('none')\n", "ax.spines['left'].set_color('none')\n", "ax.spines['right'].set_color('none')\n", "ax.tick_params(labelcolor='w', top='off', bottom='off', left='off', right='off')\n", "ax.set_ylabel('OHLC time (s)')\n", "ax.set_xlabel('Compression level')\n", "plt.suptitle('OHLC/Compression')\n", "\n", "#Y value for red line\n", "Y = (float(blosclz[4][0]) + float(lz4[4][0]) + float(lz4hc[4][0]) + float(snappy[4][0]) + float(zlib[4][0]))/len(cmethods)\n", "Ym = (float(blosclzm[4][0]) + float(lz4m[4][0]) + float(lz4hcm[4][0]) + float(snappym[4][0]) + float(zlibm[4][0]))/len(cmethods)\n", "\n", "#blosclz\n", "ax1.set_title('blosclz')\n", "ax1.plot(blosclzm[0][1:], blosclzm[4][1:], 'bo-')\n", "ax1.axhline(Ym, color = 'b')\n", "ax1.plot(blosclz[0][1:], blosclz[4][1:], 'ro-')\n", "ax1.axhline(Y, color = 'r')\n", "ax1.set_ylim(ymin=2, ymax=4.5)\n", "\n", "#lz4\n", "ax2.set_title('lz4')\n", "ax2.plot(lz4m[0][1:], lz4m[4][1:], 'bo-')\n", "ax2.axhline(Ym, color = 'b')\n", "ax2.plot(lz4[0][1:], lz4[4][1:], 'ro-')\n", "ax2.axhline(Y, color = 'r')\n", "ax2.set_ylim(ymin=2, ymax=4.5)\n", "\n", "#lz4hc\n", "ax3.set_title('lz4hc')\n", "ax3.plot(lz4hcm[0][1:], lz4hcm[4][1:], 'bo-')\n", "ax3.axhline(Ym, color = 'b')\n", "ax3.plot(lz4hc[0][1:], lz4hc[4][1:], 'ro-')\n", "ax3.axhline(Y, color = 'r')\n", "ax3.set_ylim(ymin=2, ymax=4.5)\n", "\n", "#snappy\n", "ax4.set_title('snappy')\n", "ax4.plot(snappym[0][1:], snappym[4][1:], 'bo-')\n", "ax4.axhline(Ym, color = 'b')\n", "ax4.plot(snappy[0][1:], snappy[4][1:], 'ro-')\n", "ax4.axhline(Y, color = 'r')\n", "ax4.set_ylim(ymin=2, ymax=4.5)\n", "\n", "#zlib\n", "ax5.set_title('zlib')\n", "ax5.plot(zlibm[0][1:], zlibm[4][1:], 'bo-', label='Memory')\n", "ax5.axhline(Ym, color = 'b')\n", "ax5.plot(zlib[0][1:], zlib[4][1:], 'ro-', label='Disk')\n", "ax5.axhline(Y, color = 'r')\n", "ax5.set_ylim(ymin=2, ymax=4.5)\n", "\n", "#Legend\n", "ax5.legend(bbox_to_anchor=(2, 1))\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAABCMAAAJVCAYAAADk5D8uAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VPW9//H3JAFCCARQw45gWMOWsKVuIYgQJO5StC7F\n9WJVUH/VVoXUVAG9UqtArRf78NKrVXGhtSgowUIISxGQABYUIaxhl30LZDm/P75OkslMIJnknMlk\nXs/H4zxmyWTOd2DOJ2fe811clmVZAgAAAAAAcEhYoBsAAAAAAABCC2EEAAAAAABwFGEEAAAAAABw\nFGEEAAAAAABwFGEEAAAAAABwFGEEAAAAAABwFGEEAAABkpeXp5tuukldunRRp06d9MQTT6igoEBZ\nWVm64YYbPB577733avbs2ZKklJQUffPNN17Pt3LlSiUnJ6tbt27q27evHnroIZ05c0aSVFBQoH79\n+kmS9u3bpzvuuEOdOnVS//79lZaWps2bN9v8amvWQw89pO+++y7QzQAAAH4ijAAAIAAsy9Ktt96q\nW2+9VT/88IN++OEHnTx5UuPHj5fL5fJ6vMvlKrm/7HW3/fv3a9SoUZoyZYq+//57rVmzRsOHD9eJ\nEyckSUuXLtVVV10lSbrlllt0zTXXaMuWLVq9erVeeukl7d+/3+ZXbBQWFtbI8/zlL39R9+7da+S5\nAACA8wgjAAAIgIULF6phw4YaPXq0JCksLEyvvfaa/vd//1enT5/2erxlWed9vjfeeEP33nuvkpKS\nSu677bbbFBsbK0maP3++rrvuOi1cuFD169fXf/3Xf5U8rnfv3iVBxdNPP61evXqpd+/e+uijjyRJ\nWVlZGjRokG6++WbFxcXpmWee0bvvvquBAweqd+/e2rp1qyTTe+Phhx/WgAED1LVrV82dO1eS9Ne/\n/lU33nijhgwZoqFDh+r06dO6//77lZSUpL59+2rOnDmSpA0bNigpKUmJiYnq06ePcnNzderUKaWl\npSkhIUG9evXSxx9/LMmzd8gHH3yg3r17q1evXnrmmWdKXld0dLQmTJighIQEXX755Tpw4EBl/3sA\nAIDNCCMAAAiADRs2lAybcGvcuLHat2+vLVu2aMmSJUpMTCzZPvvssyo/X1mLFi3SoEGD9J///KfC\nx82ePVvr1q3T+vXr9dVXX+npp5/Wvn37JEnr16/XjBkz9N133+ndd99Vbm6uVq5cqQcffFDTp08v\neY6dO3dq1apVmjt3rh5++GGdPXtWkpSTk6PZs2dr0aJFmjhxooYMGaKvv/5aCxcu1NNPP63Tp09r\nxowZevzxx5WTk6NvvvlGbdq00Zdffqk2bdpo7dq1+vbbb5WamiqptHfInj179Mwzz2jRokVau3at\nVq1apX/+85+SpNOnT+vyyy/X2rVrlZycrL/85S8X+F8BAABOIYwAACAAfA3FKOvqq69WTk5OyXbj\njTde8Dkr6j2xe/duNW/eXA0bNjzvfpctW6Y777xTLpdLsbGxGjRokFatWiWXy6UBAwaoRYsWql+/\nvjp16lQSCvTs2VPbt28veU2jRo2SJHXq1EmXXXaZvv/+e7lcLg0dOlRNmzaVJGVmZurll19WYmKi\nBg8erLNnz2rnzp26/PLLNXnyZL3yyivavn27IiMj1bt3by1YsEDPPPOMli5dqiZNmni83lWrVikl\nJUUXXXSRwsPDdddddyk7O1uSVL9+faWlpUmS+vXrV9JOAAAQeIQRAAAEQHx8vNcklMePH9fOnTvV\nqVOnKj9fjx49fE5qKUlffvmlhg8ffsHHSd6Bhju8aNCgQcl9YWFhJbfDwsLOOw+E+/cbNWrkcf/f\n//73kqBl+/bt6tatm37xi1/os88+U8OGDTVixAgtWrRInTt3Vk5Ojnr16qUJEyboxRdf9Pn8Zdvv\nvq9evXoeba6p+SoAAED1EUYAABAAQ4YM0enTp/Xuu+9KkoqKivTrX/9a9913n6Kioi74++VDg8ce\ne0z/93//p5UrV5bc949//EMHDhwomS9Ckq655hqdPXvWY8jC+vXrtXTpUl199dX68MMPVVxcrIMH\nDyo7O1sDBw684HwVZdv08ccfy7Is5ebmauvWrerWrZvX76empmratGklt3NyciRJ27ZtU8eOHTV2\n7FjddNNNWr9+vfbu3avIyEjdddddeuqpp0oeK5kgYuDAgVq8eLEOHTqkoqIizZo1S4MGDapUewEA\nQOAQRgAAECD/+Mc/9PHHH6tLly7q2rWroqKiNHnyZEkXHsaRlpamdu3aqV27drr99tsVGxurWbNm\n6amnnlK3bt0UHx+vzMxMRUdHa8uWLerSpYvHfr/66it16tRJPXv21Pjx49WqVSvdcsst6t27t/r0\n6aMhQ4ZoypQpio2N9bl6h1v5VT7at2+vgQMHasSIEZoxY4bq16/v9fvp6ekqKChQ79691bNnTz3/\n/POSpI8++kg9e/ZUYmKiNmzYoNGjR+vbb78tmdTyhRde0IQJEzz237JlS7388ssaPHiwEhIS1L9/\n/5JlUcvu83yvAQAAOM9lVfbrDgAAEHSWLVum9957T3/+859t39d9992nG264Qbfeeqvt+wIAAMEt\nItANAAAA9rnyyit15ZVXBroZAAAAHugZAQAAAAAAHMWcEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAA\nwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGE\nEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAA\nAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAA\nwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEQAAAAAAwFGEEaiyDh066F//+pfX/VlZWWrX\nrp1t+01JSdHbb79t2/MDAGpGRX8nAADBrbr1/d5771V6enoNtgjBjDACVeZyueRyuUJmvwCAqqlK\nvX7hhRcUFhamhQsX2twqAEB1+VPfy4YXnM+jLMIIAAAQELm5ufrkk0/UunXrQDcFAFCDytZ3wgdU\nhDACflm5cqV69Oih5s2b6/7779fZs2e9HvPdd98pJSVFzZo1U8+ePfXZZ5+V/GzevHnq0aOHmjRp\norZt2+rVV18t+dk///lPJSQkKCYmRp06dVJmZqbXc/fp00eNGzcu2cLCwpSdnW3PiwUAVJllWWrW\nrFlJnY6OjlZYWJh27txZ8pjHHntM//3f/6169eoFsKUAgKqobn0/fPiwrr/+ejVp0kQ/+9nPtHXr\n1pKfbdiwQUOHDtVFF12kli1b6qWXXnLkNSEwCCNQZZZl6f3331dmZqZyc3P1ww8/aOLEiR6pZ0FB\ngW644QYNHz5cBw8e1PTp03XXXXdp8+bNkqQHHnhAb731lo4fP64NGzbommuukWRCjtGjR+vVV1/V\nsWPHlJ2drUsvvdSrDevWrdOJEyd04sQJvfrqq+rWrZv69u3rzD8AAOCCXC6Xjhw5UlKrx40bp+Tk\nZLVp00aS9PHHHysyMlLXXXddgFsKAKiK6tR3y7I0a9YsZWRk6MiRI+rUqZPGjx8vSTpx4oSuvfZa\njRgxQnv37tWWLVs0ZMgQR18bnEUYgSpzuVx67LHH1KZNGzVr1kzjx4/XBx984PGYFStW6NSpU3rm\nmWcUERGhwYMH6/rrr9f7778vSapfv742bNig48ePKyYmRomJiZKkt99+Ww888EBJ4WndurW6du1a\nYVuWLl2q9PR0zZkzR9HR0Ta9YgBAdXz44Yf64IMPNHv2bIWHh+vEiRMaP368pk6dGuimAQCqoar1\n3eVy6dZbb1X//v0VHh6uu+66S2vXrpUkff7552rdurWefPJJ1a9fX9HR0Ro4cKCTLwcOI4yAX8qu\nmtG+fXvt2bPH4+d79uzxWlnj0ksv1e7duyVJs2fP1rx589ShQwelpKRoxYoVkqS8vDzFxcVVqg27\ndu3S7bffrnfeeUedOnWqzssBANgkJydHY8eO1aeffqqLLrpIkpSRkaF77rlH7du3L3mcZVmBaiIA\nwA/+1vcWLVqUXG/YsKFOnjwpyZzbX3bZZQ60HLUFYQT8UnZM2M6dO70mH2vdurV27drlUXx27Nih\ntm3bSpL69++vTz/9VAcPHtTNN9+sUaNGSTIhx5YtWy64/zNnzujmm2/Wk08+qdTU1Jp4SQCAGnbg\nwAHdcsst+vOf/6w+ffqU3L9w4UJNmzZNrVq1UqtWrbRr1y6NGjVKU6ZMCWBrAQCVZUd9b9++vcf8\nEaj7CCNQZZZl6Y033tDu3bt1+PBhTZo0SXfccYfHY5KSkhQVFaVXXnlFBQUFysrK0ueff6477rhD\nBQUFeu+993Ts2DGFh4ercePGCg8Pl2Tmkpg5c6YWLlyo4uJi7d69W5s2bfJqw/3336/u3bvrqaee\ncuQ1AwCqxrIsjRw5UnfffbdGjhzp8bN//etf2rBhg9atW6e1a9eqdevWeuutt/TII48EqLUAgMry\np74/+uijJb9bkbS0NO3du1dTp07V2bNndeLECa1cudLW14LAIoxAlblcLt11110aNmyY4uLi1Llz\nZ02YMEGWZZVMYlm/fn199tln+uKLL3TJJZfoscce07vvvqsuXbpIkv72t7+pY8eOiomJ0VtvvaX3\n3ntPkjRgwADNnDlTTz75pJo2baqUlBSPXhhuH374oT799FOPFTWWLVvm3D8CAOC8tm/frqVLl+r1\n118vqdNNmjRRXl6emjdvrtjYWMXGxqpFixYKDw9Xs2bN1KhRo0A3GwBwAf7U96ioKEnmc0T5pT7d\ntxs3bqwFCxbos88+U6tWrdSlSxdlZWU5/fLgIJdl8yDNoqIi9e/fX23btvVY2lGSsrKydNNNN5WM\nDbrttts0YcIEO5sDAHAAtR8AQg+1H0BVRNi9g6lTpyo+Pl4nTpzw+fNBgwZpzpw5djcDAOAgaj8A\nhB5qP4CqsHWYRl5enubNm6cHH3ywwvFBzJ4NAHULtR8AQg+1H0BV2RpGPPnkk5oyZYrCwnzvxuVy\nafny5erTp49GjBihjRs32tkcAIADqP0AEHqo/QCqyrYw4vPPP1dsbKwSExMrTEH79u2rXbt2ad26\ndRo7dqxuvvlmu5oDAHAAtR8AQg+1H4BfLJs8++yzVtu2ba0OHTpYLVu2tKKioqx77rnnvL/ToUMH\n69ChQ173x8XFWZLY2NiCbIuLi7OrxKCWovazsbFR+0NPTdV+6j4bW3Bu/tZ928KIsrKysqzrr7/e\n6/59+/ZZxcXFlmVZ1tdff21deumlPn9fcqSZXp5//nn2W0f3G0qvNZD7DdSxi9ohGGt/qB2j7Jf9\n2oHaH9qqU/s552e/7Df49mlZ/h+7tq+m4eZeP3bGjBmSpDFjxuiTTz7Rm2++qYiICEVFRWnWrFlO\nNQcA4ABqPwCEHmo/gMpwJIwYNGiQBg0aJMkUI7dHH31Ujz76qBNNAAA4jNoPAKGH2g+gsmxdTSPY\npaSksN86ut9Qeq2B3C8QbELtGGW/7BdA6B2j7Lfu7jfY6r7rpzEetZrL5WJdYiAIceyiOnj/AMGJ\nYxf+4r0DBCd/j116RgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcR\nRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAA\nAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAA\nAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcR\nRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEcRRgAAAAAAAEfZHkYUFRUpMTFRN9xwg8+fjxs3Tp07\nd1afPn2Uk5Njd3MAAA6g9gNAaKHuA6gq28OIqVOnKj4+Xi6Xy+tn8+bN05YtW7R582a99dZb+tWv\nfmV3cwAADqD2A0Booe4DqCpbw4i8vDzNmzdPDz74oCzL8vr5nDlzNHr0aElSUlKSjh49qv3799vZ\nJACAzaj9ABBaqPsA/GFrGPHkk09qypQpCgvzvZvdu3erXbt2Jbfbtm2rvLw8O5sEALAZtR8AQgt1\nH4A/Iux64s8//1yxsbFKTExUVlZWhY8rn5766tolSRkZGSXXU1JSlJKSUgOtBFCTsrKyznu8o+6j\n9gOhh9of2qj7QOipqbrvsnz1paoBzz33nN59911FREQoPz9fx48f12233aZ33nmn5DEPP/ywUlJS\ndMcdd0iSunXrpsWLF6tFixaejXS5fHb5AlC7ceyGHmo/AI7d0ELdB+DvsWvbMI3Jkydr165d2rZt\nm2bNmqVrrrnGoyhJ0o033lhy34oVK9S0aVOvogQACB7UfgAILdR9AP6ybZhGee6uWDNmzJAkjRkz\nRiNGjNC8efPUqVMnNWrUSDNnznSqOQAAB1D7ASC0UPcBVJZtwzRqEl22gODEsYvq4P0DBCeOXfiL\n9w4QnGrdMA0AAAAAAABfCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAA\nAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICj\nCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMA\nAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjCCMAAAAAAICjIgLdgEpzuQLdAgCA06j9\nABBaqPtAyAieMMKyAt0CAFXFCQWqi9oPBB9qP6qDug8EHz/rPsM0AAAAAACAowgjAAAAAACAowgj\nAAAAAACAowgjAAAAAACAo2wNI/Lz85WUlKSEhATFx8fr2Wef9XpMVlaWYmJilJiYqMTERE2cONHO\nJgEAbETdB4DQQ+0H4A9bV9OIjIzUokWLFBUVpcLCQl111VVaunSprrrqKo/HDRo0SHPmzLGzKQAA\nB1D3ASD0UPsB+MP2YRpRUVGSpHPnzqmoqEjNmzf3eozFEj4AUGdQ9wEg9FD7AVSV7WFEcXGxEhIS\n1KJFCw0ePFjx8fEeP3e5XFq+fLn69OmjESNGaOPGjXY3CQBgI+o+AIQeaj+AqrI9jAgLC9PatWuV\nl5en7OxsZWVlefy8b9++2rVrl9atW6exY8fq5ptvtrtJAAAbUfcBIPRQ+wFUla1zRpQVExOjtLQ0\nrV69WikpKSX3N27cuOT6ddddp0ceeUSHDx/26tqVkZFRcj0lJcXjOQDUDllZWV4nHwhd1a37ErUf\nCAbUfpTFOT9Q99VU3XdZNg7e+vHHHxUREaGmTZvqzJkzSk1N1fPPP68hQ4aUPGb//v2KjY2Vy+XS\nypUrNWrUKG3fvt2zkS4XY8yAIMSxG3pqqu5LvH+AYMWxG3o45wdCm7/Hrq09I/bu3avRo0eruLhY\nxcXFuueeezRkyBDNmDFDkjRmzBh98sknevPNNxUREaGoqCjNmjXLziYBAGxE3QeA0EPtB+APW3tG\n1BRSUiA4ceyiOnj/AMGJYxf+4r0DBCd/j13bJ7AEAAAAAAAoizACAAAAAAA4ijACAAAAAAA4ijAC\nAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAA\nAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4\nijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4KiLQDQBgn+y5c5U5bZoizp5VYYMG\nGjZunJLT0gLdLAAAAAAhjjACqKOy587V/Mcf16Tc3JL7xv90nUACAAAAQCAxTAOoozKnTfMIIiRp\nUm6uFkyfHqAWAQAAAIBBGAHURRs3KmLtWp8/Ct++XSoocLY9AAAAAFAGYQRQl+TkSCNHSikpKmzS\nxOdDig4ckDp3lt54QzpzxuEGAgAAAABhBFA3LF8upaVJ118vXXGFtG2bhr3+usbHxXk87Lm4OA19\n913pgw+k+fOlyy6TXn5ZOnYsQA0HAAAAEIpclmVZgW7EhbhcLgVBMwFnWZa0cKE0aZK0dav0zDPS\nvfdKkZElD8meO1cLpk9XeH6+iiIjNXTsWM/JK7/91oQR8+dLY8ZIjz8uxcbWWBM5dlEdvH+A4MSx\nC3/x3gGCk7/HLmEEEGwsS5o714QQR45Izz4r3XmnVK+e/8+ZmytNmSJ99JF0993SU09J7dtXu6kc\nu6gO3j9AcOLYhb947wDByd9jl2EaQLAoKjJhQWKiNH689OST0oYN0ujR1QsiJCkuTvqf/zHPFxkp\nJSRI990nff99zbQdAAAAAMqgZwRQ2xUUSO+/L730ktS0qTRhgpkfwuWyb5+HD5sJLqdPl5KTTe+L\nfv2q/DQcu6gO3j9AcOLYhb947wDBqdb1jMjPz1dSUpISEhIUHx+vZ5991ufjxo0bp86dO6tPnz7K\nycmxqzlA8MnPN70VunSR/vpXEw78+99mkko7gwhJat5cSk+Xtm2TrrpKuukmKTVVWrzYDBMBKkDt\nB4DQQ+0H4A/bwojIyEgtWrRIa9eu1fr167Vo0SItXbrU4zHz5s3Tli1btHnzZr311lv61a9+ZVdz\ngOBx6pT02mtm6MRnn0nvvSctWiQNGWJ/CFFeo0bSE0+YOSVGjZIefFC68krTLkIJ+EDtB4DQQ+0H\n4A9b54yIioqSJJ07d05FRUVq3ry5x8/nzJmj0aNHS5KSkpJ09OhR7d+/384mAbXXsWPS5Mlmuc1l\ny8wH/rlzzVKdgdaggfTAA2YOiSeeML0m+vQxw0cKCwPdOtQy1H4ACD3UfgBVZWsYUVxcrISEBLVo\n0UKDBw9WfHy8x893796tdu3aldxu27at8vLy7GwSUPv8+KP5cB8XJ333nekF8cknUt++gW6Zt/Bw\n00MiJ0f67/+W3nxT6tpVmjHDDCsBRO0HgFBE7QdQVRF2PnlYWJjWrl2rY8eOKTU1VVlZWUpJSfF4\nTPmJLlwVdEPPyMgouZ6SkuL1PAg+2XPnKnPaNEWcPavCBg00bNw4JaelBbpZtvD5WhMTpVdflWbO\nlH7+c2nlStMrIhi4XNJ115ltyRIzueYLLyjrxhuV1bSpduzYodyvvw50KxEg1H4gtGRlZSkrKyvQ\nzUCA1VTtp+4DtV9N1X1bwwi3mJgYpaWlafXq1R4FpU2bNtq1a1fJ7by8PLVp08bnc5QtTKhZgQgF\nsufO1fzHH9ek3NyS+8b/dL2uBRI+X+uKFVJRkZIffFBav15q2zaALaymq682W06OUl5+WWHvvaf5\nERGaeeSIHJ7hArUMtR8IDeU/MP7+978PXGMQcNWt/dR9oParqbpv2zCNH3/8UUePHpUknTlzRgsW\nLFBiYqLHY2688Ua98847kqQVK1aoadOmatGihV1Ngg/uD8oTMzOVsXixJmZmav7jjyt77tyqPZFl\nmSUoz5yRTp6Ujh41ww/27ZN275Z27DCTIG7aJG3cqMxJkzw+nEvSpNxcLZg+vQZfXe2QOW2a92s9\nflwLBg6UXn89uIOIshITpQ8/VGbv3pp05EigW4MAofYDQOih9gPwh209I/bu3avRo0eruLhYxcXF\nuueeezRkyBDNmDFDkjRmzBiNGDFC8+bNU6dOndSoUSPNnDnTruagAj4/KOfmKv3225Xctq2ZnLCo\nyFy6N1+3i4vNfAIREaWX7s3H7YidO322J3zXLmnPHql1aydevj0sS9q+XVq6VFq6VBFLlvh8WHhx\nsbPtckhEhCMdrlBLUfsBIPRQ+wH4w2WVH7xVC7lcLq8xZqgBu3cro29fZRw44PWjjH79lPHuu74D\nBV9hQ3h4lZadnJCaqomZmV73p198sV4sLpYaN5Yuv9ysJHH55Wblhnr1qvVybVNYKH37bUn4oKVL\nTThz9dXSVVdpwgcfaOKKFV6/lp6aqhe//DIADbZX2f9bl7zHhwKVRe1HTQmlOYpqA45d+Iv3DhCc\n/D12+QozFJ05I/3hD9Lrr6swJsbnQ4ouvljq3t22JgwbN07jc3M9emU8Fxen4VOnSiNGSD/8IC1f\nLv3732alhu3bpf79PQOKiy+2rX3ndeqU9PXXpcHDihVSu3bSlVdKaWlmMseOHUvCmWFxcRpfbs6I\n5+LiNHzs2MC032a+/m8BIFBCaY4iAACCCT0jQollSR99JP3mN9KAAdKUKcreuNHrJM0dCjgxieWC\n6dMVnp+voshIDR07tuJ9Hj1qAgB3QPH111KLFqXBxBVXSPHxpodGTdu/X1q2rDR82LBBSkiQrrrK\nbFdcIV10Uc291jrA/Xonzp/PsQu/UftREyrsiVdHe6fVBhy78BfvHSA4+XvsEkaEilWrpCeekE6f\nNpMmDhpU8qOg/KBcVCRt3GjCCXdAceCANHBgaUCRlCQ1berxaxfsqmtZpldG2SEXP/5ontMdPvTv\nLzVs6PALDk4cu6gO3j/w28mT5u9CdrYypk9XxrFjXg/JqFdPGQMHmiWVL7vM9GhzX2/VSgqzbY7v\nOo9jF/7ivQMEJ8II+LZnj/Tcc9L8+dLEidK999rTe6A2OHjQDJlwhxOrV5uTy596TmSfPav5U6Z4\ndtW97DKlPvKIkqXS8KFRo9Lg4aqrTI8LTkr9wrGL6uD9g0o7fNjU7+xss23cKPXtK119tSZ8+aUm\nrlnj9SvpgwbpxRdekLZu9d6OHZM6dPAOKdy3GzeuVLNCba4K9+udlJnJsQu/UPeB4EQYAU9nzkh/\n/KPZHnrIBBJNmgS6Vc4qKJDWrTPBxPLlmvDpp5qYn+/1sPTGjfXiL39pgocrrzTzP6BGcOyiOnj/\n2CfoPyS/QCmSAAAgAElEQVTv3i0tWWKChyVLzPLRl18uJSebyYMHDpQiIyX5njPigsMRT50ycxWV\nDym2bTOXjRp5BhRlg4q2baWICN9zVcTFKdWBYZCBUPb1Mnkx/EXdB4ITYQQMy5I+/tjMC9Gvn/TK\nK1JcXKBbVStkpKQoY/Fi7/sHDVJGVpbzDQoBHLuoDt4/9gi6D8mWJeXmloYP2dmm58LVV5stOdnM\n43OeZYVrdDiiZZm5hHyFFFu3miGD7dppwpEjmnj4sNev18m5KixLE1JSNDE7WxIrKcF/oVL3gz4Q\nBsphNQ1I33xj5oU4cUL661+llJRAt6hWKWzQwOf9RT99ewag9pmQmspJWg3LnDbNa7WbSbm5Sp8+\n3ZGJiy94Al5cbCYKdvd6yM42Q+WSk8321FNmtacqDJ9LTkurudfmckktW5rtiiu8f56fL+3YoYiR\nI83wkXLCFy2Shg6VunQxW+fO5rJDh/MGKrXC0aNmXqVNm8yle9u8WRHnzgW6dagj6nrdZ4UfoFQt\n/6uHStm7Vxo/XvriC+mFF6T776+780JUQ4XLidbRJTaBumBiZiYnaVVlWeZD444d0s6dZitzPeKb\nb3z+Wvj8+VLz5qVbs2a+r/u6XUHYW1aFJ+CFhUpu1aq018OyZWaFouRk6brrzHLJHTqULJdc60VG\nSl27qrB1a+k///H6cVFSkvTrX5d+kJ8711zu22depzukKLu1auXc68/PNz1RfIUOZ86UtqlrV+mm\nm0oClcJRoyQfq5YAVVWn6/7Ro8p88UXfgfCECUpu0sQsXX/xxaa21vD5PD0yUNsQRgSz/Hzptdek\nV1+VHnhA+v57KSYm0K2qtdzFNr1MV93hwbByCBDinPrWPhD8OjEsLDSTE/sKG9yXYWHSpZdK7duX\nXvbtK116qQqffdZ86C+naNgw6f33zbf5R46YS/d25Ii0a5eZh8fXzyMizh9WNGumzDff9H0Cfttt\nSu7Rw4QP99wjzZhhPnwHuQoD8N/+Vho+3GxllQ0BfvjBLGH97rvm+qlTpT0oym/Nmnnt+4Lvq6Ii\n8//pK3DYu7c0FOna1czFMXq0ud2yZYWhiK/XC/grqOt+YaGZc2bTJrN9/33p9ZMnK/zwFb5rl/Ts\ns2YVtx9/NKFyTExpOFGZLSamwl5jgeyRQQiCihBGBCPLkmbPlp5+WkpMNCcszAtRKTXaVReAY8KX\nL5duvNF8Y37RReakq+yl+3rz5lK9elV+/kCcKFV4Ynj6tJLj4ysOG/btk2JjPcOG3r2l668vve88\nwfSw3/xG43fv9v6QPG5c6b9lVViWWTa6fHhR9vb27YrYs8fnr4cnJZneEHVMlQPwyEipRw+zlXf0\nqLR5s9l++MH0hJw61Vxv0MBjyEf2iROa/957mrRrV8mvj8/JkQYNUnJRkfmd3FxzvLgDhy5dTC+U\nagwXKft6NX9+lX8fKC989Wpp7FipdWuztWpVer1Zs8D3ljpypDRkKBs6bN0qtWhhjq2uXaU+faTb\nbzfX27RR4fDhPnsRFfXvL5WdT6aoyOzDHU6U3fbvN8PZyt9/6pT5O+gjqMicPdt3IPzSS0ru2lWq\nX9/Uk/r1S7eIiGr/OxOC4HyCJoyo6+PHKi0nx8wLcfSo9Pbb0jXXBLpFAGC7ou7dTQ+wQ4fMCdeh\nQ9KWLaXX3ZdHjpiVDi4UWpS5zF65UvOffvrCJ0pFRdLZs2bLz/e89HXfBS4zZ8/WpLw8j9c5KTdX\n6XfcoeQuXUqDhfbtzbfo7uChTRu/Ahe3Gu8l5nKZf/NGjc67GlHh9u2+T8AruUxmMKqxALxpU2nA\nALOV5Z5Ms8zcDZkzZ2rSwYMeD5t08KDS161T8qRJJnDo1Mn8f9Uw9+udGOgPiagTitq2NT2C9uyR\nvvvOXO7day7PnPEMJ8peL3u7adPzfpi+4IdVdy+Hsr0b3NdPny4NHLp2le64w1x27ixFRVW4z0oP\nGw4PLw0TKqugoPRvonv76XbEyZM+fyV8zRrzN+bcObOdPVt6vajIM5woH1ac7/ZP1zO//NIjHJV+\n+lv3m98o+dAhE8Q2bGguy173dV8V5gpibg5nuI8hfwVNGFGnx49Vxr59Zl6IuXPNvBAPPMC8EABC\nwnNxcRr+u99Jlan9xcVmpYVDhzxDCvf1deu87svct0+Tys0AXTJ8IDq6NEAoKjInVw0amJOiqlyW\nvd6smdSggSIqmDw3/KqrJB8r/9SkQPQSY94eG5SdTDM5WZIU8fXXPt8/4a1bSz//udMtBPzyXFyc\nhk+aVHHdP33aBBPucMIdVGzY4Hn77FnvsOKn69k7d2r+jBmevYjWrpWSk00vou+/NyvltGxZGjgk\nJpaGDq1b+9VrwNZhw/XqldaEcgqzs82yyOUUJSd79sjw+GGRCTh8BRVlr5/nZxGLFvl86vDDh6Wv\nvjLBUn6+2dzXfd2Xn29eX2VCi4YNlbl4sSaVe71BPfznAgLdw3OSn88RNGGEVMtm+3ZKfr7pijll\ninTffSaJZV4IACEiPTW1aidpYWHmw36zZubb30qIGDTI5xwK4YmJ0pw5pSFCvXo12i248MsvTe+O\ncooaNqyxfdQmzNvjDFaOQrCrVN2PijJDlC80TPnUKe/QYs8e6dtvlTlvniYdOeLx8EkHDih97Vol\nT55c2svBhpocNIFweLjZqlE/CmfP9v23rk8f6Z13Kv9ElmUCjorCinL3Raxe7fNpwr/+2nzBO3Cg\nlJTkM7gJNlXqBVJUZHr8uLeCgvPfPs9jMp9/vtrzBAVVGCFJ4UuWmCUr3Seb7omyym5l72vatEpj\nH2vVuKZ+/ZT84YdSr17SihWVPrEGgLrixYq+ralBhRWcZBXFxEiXXGLbfkOxpwDz9tgvFN9XqFtq\ntO43amTOn32cQ0ekpPjuRdSmTZ3sRRSoQLjGapLLVdrTsBJfzBa+844ZvlZO0WWXmc+G//M/ZgXC\n6GgTSrjDiX79zjvMptawLBOyffedMp96yvd8IDffrOSGDT2DBMl8uRIR4bmVv68StyPKDTX1R9CF\nEUUJCdLzz5txwe7t8GEpL6/0etmfHTtmClFFYUW525kTJwZk/XWfIUhWlvS73yl5/Hjb9gsAoS5Q\nH97oKQA78L4CKicUexEFIhCudSHICy+UDv+xLNNr4+uvpZUrpY8/Nksyd+lSGk4kJUndugVueHxB\ngZkU9bvvzNAh9+X335tgpnt3RRw96vNXwwcOlObN8wwSqjDvxoUUpqZWe0lnl2WVGyhbC7lcLln6\n6Q00dWrV3rzFxdLx457BRfkgo8ztjBUrlHHqlNfTZEjKCA83/4nuLks1eHvCypWaWG7CKcl0VXPi\nm0HADi6XS0FQYlBLOfn+yZ47VwvKnCgN5cMb4DdqP/zldN0v/0WgX581UGv59bf97Flp7VoTTnz9\ntdkOHDA9JtzhxMCBZs6Q8+y3ykP+T5www/HLhw5bt5qJq7t3N6GI+7Jbt5LVryakpmqij1DA7s+R\nZY8hl+TXsRs0PSOqPG7YLSzMDNVo2lTq2PGCD68o4SlKTZU++6x0nE1RUelW/nZlHlPudsT27ZKP\nMCI8P79qrxcAUGUMHwCA0EIvorrPr7/tDRqUhg7uHpKHDkmrVplg4q23pAcfNHOJlA0n+vWToqPP\nP+R/xAizKEHZsMF9efiw6ZHhDhzuuMNc79LlgnN21IYenv4u6Rw8PSPqeEoaqEQLsBPfjqE6eP8A\nwYljF/7ivYOgYFmmx4K758TKldL69VKnTppw6JAm+li1JD0mRi9KZshE+V4O3bub5burMYQi0D08\n/T12g6ZnhFNq3bgmJpwCAAAAgNrB5SpdzeXOO819585J69Ypwn27nPCOHaUFC6SLL7alScHaw5Mw\nwodQmtwFAAAAAFAN9etLAwao8LLLfC9l2qKFbUFEMGOYBgDbcOyiOnj/AMGJYxf+4r2DYBeqE6P6\ne+wSRgCwDccuqoP3DxCcOHbhL947qAsCPX9DIBBGAKh1OHZRHbx/gODEsQt/8d4BgpO/x67/U3YC\nAAAAAAD4gTACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAAAAA4ijACAAAA\nAAA4ytYwYteuXRo8eLB69Oihnj17atq0aV6PycrKUkxMjBITE5WYmKiJEyfa2SQAgI2o+wAQeqj9\nAPwRYeeT16tXT6+99poSEhJ08uRJ9evXT0OHDlX37t09Hjdo0CDNmTPHzqYAATV3bramTcvU2bMR\natCgUOPGDVNaWnKgmwXUOOo+AIQeaj8Af9gaRrRs2VItW7aUJEVHR6t79+7as2ePV2GyLMvOZgAB\nNXduth5/fL5ycyeV3JebO16SCCRQ51D3ASD0UPsB+MOxOSO2b9+unJwcJSUledzvcrm0fPly9enT\nRyNGjNDGjRudahLgiGnTMj2CCEnKzZ2k6dMXBKhF9ps7N1upqRMC3QwEGHUfAEIPtR9AZdnaM8Lt\n5MmTGjlypKZOnaro6GiPn/Xt21e7du1SVFSUvvjiC91888364YcfvJ4jIyOj5HpKSopSUlJsbjXs\nFoihC3bs07Kko0elvXulffu8L7/+2vdhtmlTuD79VOrRQ7rsMik8vFrNqBWysrL01lv/py+/3KIj\nR4YEujkIoJqo+xK1HwgGWVlZysrKCnQzUAtwzg+Ehpqq+y7L5v5SBQUFuv7663XdddfpiSeeuODj\nO3bsqG+++UbNmzcvbaTLRbeuOsbX0IW4uPGaOjXVtkCiqvssKJAOHPAMFyoKHBo0kFq2lFq1Kr10\nX582bYK++cZ7kqYOHdIVH/+iNmww++nSxQQTZbeOHWt/SHHsmLR1q7Rtm7mcNm2Cdu1yv16O3VBU\nE3VfovYDwYpjNzRxzg+ELn+PXVt7RliWpQceeEDx8fEVFqX9+/crNjZWLpdLK1eulGVZXiekqHsq\nGrrw8svp6tTJBAMul+/f9ff+l1/2vc+nnkrXkiXJXoHDkSPSxRd7BgwtW0rx8dI115QGDi1aSI0a\nVfxaL7pomB5/fHy5EOQ5TZ06XGlp5vbJk9J330kbNphtxgxzefCg1LWrZ0ARH1/5kKImeoKcOyft\n2FEaOLhDB/dlQYFpz2WXmcv69R3pcIVairoPAKGH2g/AH7Z+ali2bJn+9re/qXfv3kpMTJQkTZ48\nWTt37pQkjRkzRp988onefPNNRUREKCoqSrNmzbKzSXCYZZlv/Tdt8tyys32/9VavDteNN5rfq+j5\n/L1/927f+zx+PFyNG5ueCWWDh0suqZleCe4P/9Onpys/P1yRkUUaO3a4RygQHS0NGGC2sk6c8Awp\n3nxT2rhR+vFHz5AiPr60J0XYTzPBVHbiTMsy4UvZgKHs5f79Utu2noHDbbeVXr/4Ys8gaOPGQuXm\nVv/fDcGJuo/zYWUhoG6i9gPwh+3DNGoCXbZqv/x8afNm79Bh0yYpIsJ8cC67TZkyQcuXew9dSE1N\n15dfvmhLG1NTJygz09l92uXECRNKbNhQerlhg3TokNStmwkmVqyYoM2bvV9v167pGjr0xZKwYft2\nqXFjz7Ch7GXbtub/sLI8QxCOXfiP2l+3BGJ4HgKDYxf+crlcGjZsPEElEGRq5TANBIfKflNlWdLu\n3b4Dh717zYdXd9iQkiKNGWOuX3yx9z7r1fM9dGHs2OG2vc5x44YpN9fZfdqlcWMpKclsZR0/XtqT\nYuFC34f3iRPh6tRJGjrUhA0dOpieGTWlbE+Q+fNr7nkBBK8ff5TS0ytaWSidDx0ASmRmTmQJdCBE\nEEaEOF/fVG3ePF5btkixsckegcMPP5gPrWV7OAwdai47dqzat+eVGbpQ0wKxT6c1aVIaUnz4YaF2\n7/Z+TK9eRXr8cXvbkZaWrLS0ZLlc3j0zANRtRUWmx9by5dK//20u9++XwsJ8/5HYuTNcRUW1f7Je\nAM4hqARCA8M0QlxFQxeio9M1fPiLHsFDly5S06YBaCT84rtLtHviTGf+uHPsojp4/wSHo0elr78u\nDR5WrpRiY6UrrjDb5ZebeW1GjPD99yYmJl2xsS/qmWeku++W6tcPwItAjeLYhb9cLpck895p0yZD\nf/97hgYMqHiScgC1A8M0UGUnT0qbNvl+C/TrF66PP3a4QahRodATBICzLMv0kivb62HHDqlfPxM8\njB0r/exnZgLg8ioaKvf668MVHS1NnixlZEhPPSU9+KAUFeXc6wJQ+0RGFumee8yqXqNGSbffLiUm\nEkwAdQlhRAgqLJRmzjQnfcXFhT4fExlZ5GyjYAv3cAkA5xdqqzxU9vWePCmtWlUaPPz732bOGnev\nhzFjpN69pXr1LrzPCwWkKSlmXy+9ZIKJxx+XHnlEiompyVcOIBi4e3KOGCGtXy99+KH085+bFcNG\njTJb794EE0CwY5hGCLEsad486be/NZNKTpkiHTgQ+K78qLs4dlEdTr1/Qm2Vh4pe7+uvp6pHj2SP\nXg+bNkl9+pQOt7j8cql1a/vbuGGD9PLL0hdfSA8/bIIJX70tULu4Q67MzEnUfvjF5XIpNXWCxo4d\n6lV/LUtas8YEEx99JEVGlvaY6NEjQA0GIMn/czbCiBCxZo3p+rp3r/TKK9L115emyXPnZmv69AVl\nvqny/gMA+INjF9Xh1PunLi37WxkVvd769dN10UUvesz10Lev1KBBABr5k61bTXD+4YfSL38p/frX\nUrt2gWtPVYVSjxuWdUZNqGzdtywzP81HH5ktJqY0mOja1YGGAvDAnBHwaccOafx46V//MsMyHnjA\ne9ULuvIDqK1SUydU6wOcZUknTpggtuy2b1/p9eXLff8p3LcvXAUFlRuCECwOHpR27PD9ehMTw/Xv\nf9eubs+XXSa9+aaUni798Y+ml8att5oefp07B7p15+erB0pdXq5w2jTvpVsBu7hcpauHTZlienN9\n9JE0eLDpRXX77Sac6NQp0C0FcD6EEXXU0aNmzO3bb0uPPmpO5ho3DnSrAKBqKlpvvrhYOnSo4oCh\n7OZySa1aeW89epjL3/++UMuXe+9727YixcZKqalSWpp03XVmiFswsSzp22+lzz8324YNUmSk77mC\nmjYtqlVBRFmtW0t/+IP07LPS9Omm58a115rbvXsHunXeDh2Sfvc77w/nubmT9Ic/pGvEiORa+29d\nWQcOmDk+Vq0y31AvXMgpJQIjLEy68kqz/fGP0rJlpjfVlVdKbduaYOLnPzfL0AOoXRimUcecO2eC\nh8mTpRtukF54wZnxvYAvHLuojrJLvLVtm66+fV8sCRj27zcBa/mAoWVL7/suFMSebxncxMRkffGF\n+SC/cKEJMK6/3my9etWuXgRuZ85IixaVBhAREebvwfXXS8nJ0ldfBf9cQSdOSDNmmA8e/fpJzz1n\nhpUEqi3ffFP6wXz1ahNGuFwZOnYsw+vxEREZatYsQ4mJUkKC2RITTU+P8HDHm18pJ0+a4Z4rV5pt\n1SrzpUf//tLAgWZ77bUJWrzYPfyH2g//1OR5Q2GhlJ1tgom//930tHJPfuke7hVKQ6kCiX/nuo85\nI0KcZUmffGK+JerSxcwL0bNnoFuFUMexi+ooG0Z06pShV17J8AgdanIug8rMnXP2rLR4cemH/IIC\n8wE/LU265prALkWZlyfNnWvatXix+XDrDk26dfMOTerKXEH5+WZ1qFdeMd96PvecNGSIfSHRmTPS\nunWlwcOqVdLOnWb4yIAB5sP5gAHm7/B111U8F8nbb7+otWulnByVXO7fbwIudziRkGBuN2xoz2up\nSEGB6U3jDh1WrjRzd/TubUKHAQPMZadO5htpN+aMQE2w67yhoMCEtB9+KH36qZlXomfPbGVmzteO\nHaExeXGghNok0VJohi+EESFs2TIzOWV+vunGOmRIoFsEGBy7qI6yYURtm0zSsqTvvy8NANaska6+\nujScaN/e3v0XF5sPiu5gZOdOM4wkLc0MK2ne3N791zYFBdKsWWZZ0MaNTShxww2eH5b9ec7//Mf0\ndHAHD5s2mXBnwIDS8KFHD9/zipyvx42vk9Jjx0zQUTak2LTJhCzucMJ9edFF5297ZU+Ei4ulLVs8\ng4f16803yO7QYeBA8+VG/foX/jdzh1zz50+k9sMvTpw3nDsnffWV9NBDE7Rnj3dgOHRoujIza8/f\nm2A3bNgELVjg/e981VXpmj37RTVrZt/cTIEIBUItfKnuKkqEEUHshx+kZ54x3UMnTpTuuqt6J15A\nTePYRXW4w4hgGEJw9Kg0f74JJ774wvTecAcTP/tZzXS/P35cWrDAhA/z5plJ2ty9H372M+/JiUNR\ncbH51nPyZBPQP/usGS8+f/75T0iLi80Hf/cwi1WrzIfyDh1KezsMGGB6QERGVr491e2Bcvas9N13\nnj0o1q0zKweUHeKRkGDa6nKd/0Q4MTG5JHRYudK81piY0tBhwACzgkp155ii9sNfTr53UlIytHhx\nho82ZOjSSzPUtavp5VT2sm1bzrXPx7JMT6qytXTp0gwVF2d4PbZhwwxFR2foyBHTA6x586pv56vH\nToUCRUWmVp89a/7u3H77BC1Z4vwKXYEPXup4z4hhw8aHRBeXyjh4UPr97823QE8/LY0b53w3TqAy\nOCFFdZxvvfnarKjIfND7/HMTTuTlScOHm9AgNVVq1qz0sRc6ediypbT3xYoVZkI2d8jBZGwVsywT\n3EyeLH3/fbaKi+fr4MHSE9L27cfrjjtSVVxsPpyvWWPCnbI9HmriQ7kdioulbds8A4q1a6VTp0wo\nsW3bBO3c6X0i3KBBuqKjX/QYajFggBQbW/NtpPbDX06+dypa5njYsHT96U8vatMm88Vf2cujR838\nLuVDii5dPGv7hdSVbvy7d3v2Hlu92gxZLBvivvTSBC1aVPGHc/eqV4cPn387dMj7vvDwioOKTz+d\noM2bvffbrVu67r//xZLwoOylr/sudFlUZIaNRkaay6NHM3T2bIaPf60MXXRRhho3lpo0MZuv65X5\nefmeJFUNXoqKpNOnzXxAJ0+avx/u6+Vvn+9nGzZM0KlT1ZsrKGi+R6loRvVQcvq09PrrZsKuu+4y\nXYSDbWZ3AKiK2jQ0o7LCw81kipdfLk2aJO3aZQKF996T/uu/zDfZaWlSdHS2/vhH76Uf16+XDh1K\n1uefm677aWlmVaR//EOKjg7gCwsiLpc0bJjZkpIytXKl56oWO3dO0syZ6Xr88WQ995yZBPNCQx9q\ni7AwKS7ObCNHlt5/4IAJJR5+2PepXZ8+4VqxonZOugoEwrhxw5SbO95rKNW4ccPVubPv5YNPnDDB\nhDuc+PJLaepUc7thw9JwomxQcdllnnMcBeuyv4cOeQYPq1aZIS/u0OGxx0wI0aqV5++dOzdMO3d6\n/zuPHTtckqlJ7g/cHTpUvj2WZT4bVRRenDnjuxYePx6u/ftLw4OYGHNZNlCoymVEhGddTU0tVGam\n936HDi3S+++bXo7Hj5v3UtlL9/Vdu3zfX/Z6vXqeIcX27Zk6csR79abRo9PVuXOyV4iQny81amTO\nKdyX5a+Xvd22re+fjR0bodWrK/9/5kvQhBGS+UedPj29Vh+odigqkt5916yz/rOfmW/HWDcZAIJD\nu3bSww+brexKFzNnZio/3/vk4eWX0/X//l+y3nvPBBd0Ca6ehg19n+rEx4dr/HiHG2Oj2FgTvnTu\nXKht27x/3qxZ7V26FQgE9+eJ6dPTywylOv+QwMaNTXjZr5/n/ZZlVnoq25MiO9tc7txpPsy5w4n5\n830v++vEZ5zK9sg4ccL0GCvb4+HHH02PsQEDpLvvNiHMpZdeOOD059+5Mlwu84G4UaPS1VHKWriw\nUHl53vf36lWkP/yhWrs+r4pCrscfH66LL67+F8mWZc4lyoYU998foSNHvB/bunW4Xn3VO0Ro2LBm\nzi2aN/e9VHhVBFUYIUlr1ph/1MREs1WlS1Rt56tA1K+frKefNl2ePvzQrK0OAAhODRtKI0aYbcOG\nCGVnez8mMTFczz/vfNvqqgYNfJ8sRUYWOdwSZ1R0Iuz+FhJAqbS05BoJAFwuqXVrs6WkeP7s3Dkz\ntModUhw54vvj15Il4br6avNNfUyM1LRp6fXz3W7UqHI9nirqkXHunNS6dbJH8LB9u1lBZ8AAMzQw\nI8MEKf5+gK2pf+eqCFQttCt8cXO5zOfCqCizspgktWxZqPXrvR/bunWRrZ8dff0bV1XQhREtWhRp\nxw4zQdXatSZd6tvXBBPuy/Ldg4KBrwKxZMl4xcRIf/pTsm69la6VAFCXREaG1ofkQAm1D+d2nwgD\nqJr69UuHbkjSggWF2rfP+3EJCUWaNMkMzzt2zMxPceyYGR6xdavnfWUfc/as6a5fPqwoH2DMnOm7\nR8bIkenq3TtZ/fubeYmeeMKsoGPXChdOCWQtdDp8qQ3By/z5/j1H0Exg6V7eDUAwYRIz+I/aDwQr\naj/8Q90HglUdn8AyNTW9UjOqW5aZ+CMnx4x1cl+eOlU6tMPdg6JrV9/LrdXUDLeWZRLL/fvNxFLn\n27ZsyVBRUYbXcwwalKGsLO/7gWBAbx5UV13/PFPdpR+B2ojaj+qo63VfCkztr2j1ELuXnERo8Lfu\nB03PiOo288ABE0y4w4k1a6R9+6RevTyHeezYka2nn654aZT8fM8Q4XxBw8GDZjxPbKzn1qKF932P\nPnr+ZW+AYMTybqgO3j9AcOLYhb9479jH9/KPz2nqVIZxofr8PXZDJozw5dix0jW63b0oNmyYIMvy\nDgUaNkxXRIRZk7Z8kFBR0HDJJZ5L+ZwPBQJ1EScVqA7eP0Bw4tiFv3jv2IveeLALYUQNufrqDC1d\nmuF1/4ABGcrMzFBMjH3dDykQqGs4qUB18P4BghPHLvzFewcITv4eu0EzZ4RToqJ8z27evHmRmja1\nd9+BWPYGAAAAAACn+blabN01btwwxcWN97jPLI0yNEAtAgAAAACgbmGYhg8MlwBqBt0tUR28f4Dg\nxOiVrrwAACAASURBVLELf/HeAYITc0YAqHU4dlEdvH+A4MSxC3/x3gGCk7/HLsM0AAAAAACAowgj\nAAAAAACAo2wLI3bt2qXBgwerR48e6tmzp6ZNm+bzcePGjVPnzp3Vp08f5eTk2NUcAIADqP0AEHqo\n/QD8YVsYUa9ePb322mvasGGDVqxYoTfeeEPfffedx2PmzZunLVu2aPPmzXrrrbf0q1/9yq7m+CUr\nK4v91tH9htJrDeR+EXqCvfaH2jHKftkvUBOo/eyX/daO/QZb3bctjGjZsqUSEhIkSdHR0erevbv2\n7Nnj8Zg5c+Zo9OjRkqSkpCQdPXpU+/fvt6tJVRZKb9xQ228ovdZA7hehJ9hrf6gdo+yX/QI1gdrP\nftlv7dhvsNV9R+aM2L59u3JycpSUlORx/+7du9WuXbuS223btlVeXp4TTQIA2IzaDwChh9oPoLJs\nDyNOnjypkSNHaurUqYqOjvb6efklQFwul91NAgDYjNoPAKGH2g+gSiwbnTt3zho2bJj12muv+fz5\nmDFjrA8++KDkdteuXa19+/Z5PS4uLs6SxMbGFmRbXFycbfUFtRe1n40ttDdqf2iqidpP3WdjC87N\n37ofIZtYlqUHHnhA8fHxeuKJJ3w+5sYbb9Sf/vQn3XHHHVqxYoWaNm2qFi1aeD1uy5YtdjUTAFCD\nqP0AEHpqqvZT94HQ4rKscv2lasjSpUuVnJys3r17l3TBmjx5snbu3ClJGjNmjCTpscce05dffqlG\njRpp5syZ6tu3rx3NAQA4gNoPAKGH2g/AH7aFEQAAAAAAAL44spqGv+6//361aNFCvXr1cnS/u3bt\n0uDBg9WjRw/17NlT06ZNs32f+fn5SkpKUkJCguLj4/Xss8/avs+yioqKlJiYqBtuuMGxfXbo0EG9\ne/dWYmKiBg4c6Nh+jx49qpEjR6p79+6Kj4/XihUrbN/npk2blJiYWLLFxMQ48r6SpJdeekk9evRQ\nr169dOedd+rs2bOO7Hfq1Knq1auXevbsqalTpzqyTwS/UKr7ErWf2m8P6j6CDbXfudpP3bcX5/xV\nrP1+zTThkOzsbGvNmjVWz549Hd3v3r17rZycHMuyLOvEiRNWly5drI0bN9q+31OnTlmWZVkFBQVW\nUlKStWTJEtv36fbqq69ad955p3XDDTc4ts8OHTpYhw4dcmx/br/85S+tt99+27Is82999OhRR/df\nVFRktWzZ0tq5c6ft+9q2bZvVsWNHKz8/37Isyxo1apT117/+1fb9fvvtt1bPnj2tM2fOWIWFhda1\n115rbdmyxfb9IviFWt23LGq/U0Kl9lP3EYyo/c7Vfuq+czjnv7Ba3TPi6quvVrNmzRzfb8uWLZWQ\nkCBJio6OVvfu3bVnzx7b9xsVFSVJOnfunIqKitS8eXPb9ylJeXl5mjdvnh588EGvJZfs5vT+jh07\npiVLluj++++XJEVERCgmJsbRNnz11VeKi4vzWGvbLk2aNFG9evV0+vRpFRYW6vTp02rTpo3t+/3+\n+++VlJSkyMhIhYeHa9CgQfr73/9u+34R/EKt7kvUfieEUu2n7iMYUfudqf3U/bpZ96Xgrf21Ooyo\nDbZv366cnBwlJSXZvq/i4mIlJCSoRYsWGjx4sOLj423fpyQ9+eSTmjJlisLCnH07uFwuXXvtterf\nv7/+8pe/OLLPbdu26ZJLLtF9992nvn376qGHHtLp06cd2bfbrFmzdOeddzqyr+bNm+vXv/612rdv\nr9atW6tp06a69tprbd9vz549tWTJEh0+fFinT5/W3LlzlZeXZ/t+gZrgZN2XqP1OCKXaT90H/BMK\ntZ+6XzfrvhS8tZ8w4jxOnjypkSNHaurUqYqOjrZ9f2FhYVq7dq3y8vKUnZ2trKws2/f5+eefKzY2\nVomJiY4nlsuWLVNOTo6++OILvfHGG1qyZInt+ywsLNSaNWv0yCOPaM2aNWrUqJFefvll2/frdu7c\nOX322Wf6+c9/7sj+cnNz9frrr2v79u3as2ePTp48qffee8/2/Xbr1k2//e1vNWzYMF133XVKTEx0\n/A8f4A+n675E7af21yzqPlB1oVD7qft1t+5LwVv7+StRgYKCAt122226++67dfPNNzu675iYGKWl\npWn16tW272v58uWaM2eOOnbsqF/84hdauHChfvnLX9q+X0lq1aqVJOmSSy7RLbfcopUrV9q+z7Zt\n26pt27YaMGCAJGnkyJFas2aN7ft1++KLL9SvXz9dcskljuxv9erVuuKKK3TRRRcpIiJCt956q5Yv\nX+7Ivu+//36tXr1aixcvVtOmTdW1a1dH9gv4K5B1X6L22ymUaj91H6iaUKn91P26W/el4K39hBE+\n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\nLVqkb7/9VidPntRf/vIX/dd//VfJP7VXXnmlDMPQI488ogkTJtjzxgEAHtm4caPi4uL0/vvvq3nz\n5iXTTdMs92oapmnqpZde0r59+3T48GElJyfr9ttvd6pkAADgJYQR8Fh+fr4ee+wxtWzZUm3bttWh\nQ4c0a9YsSWW/8Sp+HB4erj/+8Y+68sor1aZNG33zzTcaPHiwy7wDBw7U9u3b1bJlSyUmJuq9995T\n06ZNS5Yzfvx43XHHHWrbtq1Onz5dptnvhAkT9PXXX2vcuHF2vXUAgAeWLFmio0ePavDgwSVX1Bg1\napQMw3D5O3Hu/d/97neKjo5WWFiYLrroIk2bNs0b5QMAAAcZps0X/i4sLNQVV1yhDh066MMPP3R5\nLiMjQzfccEPJIIi33HIL/4DUMvPnz9err76q1atXu31+2LBhGj9+vO68885yl7Fw4UK98soryszM\ntKtMABeIYz8AAADOx/bLDsyePVvh4eE6duyY2+eHDh2qJUuW2F0GfNj58rKTJ0/qpZdecrmUKADv\n49gPAACA87G1m8bevXuVlpamu+6667x9RVF7ndt0t7x53FmxYoVatWqltm3bVngdewDO4dgPAACA\nitgaRjz00EN69tlnFRDgfjWGYejzzz9X7969NWrUKG3dutXOclADTZw48bzdK1atWlVuF42YmBgd\nP35c77//frnbGADncewHAABARWw7g1u6dKlatWqliIiIcr8B69u3r/bs2aPNmzcrLi5ON954o13l\nAAAcwLEfAAAAnrBtAMupU6dq4cKFCgoKUl5ennJzc3XLLbdowYIF5b6ma9eu2rBhg5o1a+YyvXv3\n7srOzrajTAA2CgsL044dO7xdBhzEsR8Ax34AgCdsaxnx5JNPas+ePdq5c6cWL16s4cOHl/ln9MCB\nAyXfnGVlZck0zTL/jEpSdnZ2yTXKnbxNnz6d9frpemvTe/XmejmRrH18/dhf2/ZR1st67bhx7AcA\neML2q2kUKx6EcN68eZKke+65R++++67mzp2roKAghYaGavHixU6VAwBwAMd+AAAAuONIGDF06FAN\nHTpUkvWPaLEHHnhADzzwgBMlAAAcxrEfAAAA5eESBOcRFRXFev10vbXpvXpzvYCvqW37KOtlvQAA\neIttA1hWJ8Mw5ANlAjgH+y6qgu0H8E3suwAATzg2ZgQAAAAAuNOsWTMdOXLE22XUCk2bNtXhw4e9\n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\nREQs9W+ujk4p2lmeDgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This may be one of the most interesting plots, the two horizontal lines represent the average time for that operation for the uncompressed dataset. That means that the compressed files (Represented as dots) below than line can be computed faster than the uncompressed dataset. \n", "\n", "Here there are two important points:\n", "\n", "* You should compress data if you are going to store it on disk.\n", "* Sometimes even when working with memory, it is faster to compress data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how many MiB/s we get." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Matplotlib magic\n", "fig = plt.figure(num=None, figsize=(18, 9), dpi=80, facecolor='w', edgecolor='k')\n", "ax = fig.add_subplot(111)\n", "ax1 = fig.add_subplot(231)\n", "ax2 = fig.add_subplot(232)\n", "ax3 = fig.add_subplot(233)\n", "ax4 = fig.add_subplot(234)\n", "ax5 = fig.add_subplot(235)\n", "plt.subplots_adjust(wspace=0.6, hspace=0.6)\n", "ax.spines['top'].set_color('none')\n", "ax.spines['bottom'].set_color('none')\n", "ax.spines['left'].set_color('none')\n", "ax.spines['right'].set_color('none')\n", "ax.tick_params(labelcolor='w', top='off', bottom='off', left='off', right='off')\n", "ax.set_ylabel('MiB/s')\n", "ax.set_xlabel('Compression level')\n", "\n", "#blosclz\n", "ax1.set_title('blosclz')\n", "ax1.plot(blosclzm[0][1:], blosclzm[5][1:], 'bo-')\n", "ax1.plot(blosclzm[0][1:], blosclzm[6][1:], 'go-')\n", "ax1.plot(blosclz[0][1:], blosclz[5][1:], 'ro-')\n", "ax1.plot(blosclz[0][1:], blosclz[6][1:], 'mo-')\n", "\n", "#lz4\n", "ax2.set_title('lz4')\n", "ax2.plot(lz4m[0][1:], lz4m[5][1:], 'bo-')\n", "ax2.plot(lz4m[0][1:], lz4m[6][1:], 'go-')\n", "ax2.plot(lz4[0][1:], lz4[5][1:], 'ro-')\n", "ax2.plot(lz4[0][1:], lz4[6][1:], 'mo-')\n", "\n", "#lz4hc\n", "ax3.set_title('lz4hc')\n", "ax3.plot(lz4hcm[0][1:], lz4hcm[5][1:], 'bo-')\n", "ax3.plot(lz4hcm[0][1:], lz4hcm[6][1:], 'go-')\n", "ax3.plot(lz4hc[0][1:], lz4hc[5][1:], 'ro-')\n", "ax3.plot(lz4hc[0][1:], lz4hc[6][1:], 'mo-')\n", "\n", "#snappy\n", "ax4.set_title('snappy')\n", "ax4.plot(snappym[0][1:], snappym[5][1:], 'bo-')\n", "ax4.plot(snappym[0][1:], snappym[6][1:], 'go-')\n", "ax4.plot(snappy[0][1:], snappy[5][1:], 'ro-')\n", "ax4.plot(snappy[0][1:], snappy[6][1:], 'mo-')\n", "\n", "#zlib\n", "ax5.set_title('zlib')\n", "ax5.plot(zlibm[0][1:], zlibm[5][1:], 'bo-', label='Compression speed (Memory)')\n", "ax5.plot(zlibm[0][1:], zlibm[6][1:], 'go-', label='Computational speed (Memory)')\n", "ax5.plot(zlib[0][1:], zlib[5][1:], 'ro-', label='Compression speed (Disk)')\n", "ax5.plot(zlib[0][1:], zlib[6][1:], 'mo-', label='Computational speed (Disk)')\n", "\n", "#Legend\n", "ax5.legend(bbox_to_anchor=(2.7, 1))\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n8OBBzJgxAwcPHoSbmxsWLVpk8XqrVVRU4IcffsBjjz1mlfrS0tKwZMkSnDt3DhkZGSguLsbatWst\nXm+XLl0wd+5cDBs2DA888ACioqKs/p8kUUNYu98H2Pez729a7PeJbp0j9P3s91tuvw84Rt/P/1Fq\nUVlZiZEjR+KJJ57AiBEjrFq3l5cXYmNjceDAAYvX9dtvv2Hr1q3o0KED4uLisGvXLkyYMMHi9QJA\nUFAQAMDf3x+PPPII9u/fb/E6Q0JCEBISgr59+wIARo0ahYMHD1q83mrbt29H79694e/vb5X6Dhw4\ngLvuugt+fn5QKBR49NFH8dtvv1ml7ilTpuDAgQPYvXs3vL290blzZ6vUS9RQtuz3Afb9luRIfT/7\nfaJb4yh9P/v9ltvvA47R9zO4MEMIgSeffBIRERF47rnnrFJndnY28vPzAQBlZWX48ccfERUVZfF6\n33nnHVy8eBHp6enYsGED7r33Xqxevdri9ZaWlqKoqAgAUFJSguTkZKuMJB0YGIi2bdvi1KlTAPTX\nnkVGRlq83mrr169HXFyc1err0qUL9u3bh7KyMgghsHPnTqudhn716lUAwIULF7Bp0yarnSpH1BC2\n6PcB9v3s+5se+32i+nOkvp/9fsvt9wEH6fstMuRnE3n88cdFUFCQcHJyEiEhIWLFihVWqXfv3r1C\nkiTRs2dP0atXL9GrVy+xfft2i9Z55MgRERUVJXr27Cm6d+8u3n33XYvWZ05KSorVRhg+e/as6Nmz\np+jZs6eIjIwU77zzjlXqFUKIv//+W/Tp00f06NFDPPLII1YbYbi4uFj4+fmJwsJCq9RXbfHixSIi\nIkJ069ZNTJgwQVRUVFil3v79+4uIiAjRs2dPsWvXLqvUSc2fI/X7QrDvZ99vGez3qblh32/dvp/9\nvmXxN79lSEJY+SInIiIiIiIiIqJ64qUiRERERERERGS3GFwQERERERERkd1icEFEREREREREdovB\nBRERERERERHZLQYXRERERERERGS3GFwQERERERERkd1icEFEREREREREdovBBRERERERERHZLQYX\nRERERERERGS3GFwQERERERERkd1icEFEREREREREdovBBRERERERERHZLQYXRERERERERGS3GFwQ\nERERERERkd1icEFEREREREREdovBBRERERERERHZLQYXRERERERERGS3GFwQERERERERkd1icEFE\nREREREREdovBBRERERERERHZLQYXRERERERERGS3GFwQERERERERkd1icEFEREREREREdovBBRER\nERERERHZLQYXRERERERERGS3GFwQERERERERkd1icEFEREREREREdovBBRERERERERHZLQYXRERE\nRERERGS3GFwQERERERERkd1icEFEREREREREdovBBRERERERERHZLQYXRERERERERGS3bhpcnDlz\nBmq1GgDw888/IyEhAfn5+RZvGBERERERERHRTYOLkSNHQqFQ4MyZM5g+fTouXryIsWPHWqNtRERE\nREREROTgbhpcyGQyKBQKfP/995g1axbee+89ZGZmWqNtREREREREROTgbhpcODk5Yd26dVi9ejUe\neughAEBlZaXFG0ZEREREREREdNPgYsWKFfj9998xf/58dOjQAenp6Rg/frw12kZEREREREREDk4S\nQghzM6ZNm4YHHngAQ4YMgYeHh7XbRURERERERERUe3Cxb98+bN++Hbt27YJSqURMTAzuv/9+9OzZ\n09ptJCIiIiIiIiIHVWtwUVN2djaSk5ORlJSEI0eOICoqCg888ABGjx5tjTYSERERERERkYOqV3Bx\nowMHDmDHjh2YP3++JdpERERERERERASgjuBCCIHdu3fD19cXPXr0wMaNG7Fnzx6Eh4djxowZcHZ2\ntnZbiYiIiIiIiMjB1BpczJgxA0ePHoVarUbnzp1RXFyM+++/H7/88guEEFi7dq2120pERERERERE\nDqbW4KJr165ITU2FWq1GcHAwrl69CoVCASEEunfvjmPHjlm7rURERERERETkYGS1zVCpVJAkCS4u\nLmjfvj0UCgUAQJIkKJVKqzWQiIiIiIiIiByXorYZ165dwwcffAAhhNHz6nlERERERERERJZW66Ui\nCxcuhCRJAPQDdd74fMGCBdZrJRERERERERE5pAbdDpWIiIiIiIiIyBpqvVRk8eLFmDt3LmbNmmUy\nT5IkJCQkWLRhRERERERERES1BhcREREAgN69e5vMq75shIiIiIiIiIjIknipCBERERERERHZrVrP\nuBg+fDgkSYK5XEOSJGzdutWiDSMiIiIiIiIiqjW42LdvH0JCQhAXF4fo6GgAMIQYvFSEiIiIiIiI\niKyh1ktFNBoNfvzxR6xfvx5Hjx5FbGws4uLiEBkZae02EhEREREREZGDktU2Q6FQ4IEHHsDq1aux\n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\n5u/bt4+BAwc+1DF79erFpk2byt3OwMCAP//8s0R6dnY2zz//PElJSQ9Vbm0hAxeSJElSpYwdOxZr\na2tefPFFJS0lJQU3Nzeee+453N3duXPnjpIXFBREy5Ytad26NREREdVevzffhMGDwcen2ouSJEmS\npErZunUrLi4uaLVabGxs6NWrF0eOHKnpalWLtLQ0mjVrVtPVqBYqlQqVSlVqvr+/P59++qny2MDA\ngDp16qDVarGysqJ79+589913Ovv89NNPeHt7P3KdTExMGDt2LAsWLHjkY9QkGbiQJEmSKmXMmDGE\nh4frpC1YsAA3Nzeio6P5+9//rnxInj17luDgYM6ePUt4eDjvv/8+BQUF1V7HoCA4cQJ27qz2oiRJ\nkqQn0OGwMGZ4eBDQtSszPDw4HBb2WPcHWLJkCVOnTmXGjBncvHmTa9euMXHiRHbv3v3Qx6pKeXl5\nNVr+0+bXX38lNTUVV1dXnfRTp06RlpZGdHQ0o0ePZtKkScydO7dKy/by8mLDhg3k5uZW6XEfC/EE\neEKqKUnSA+Rr99lx+fJl8be//U153KpVK3H9+nUhhBCJiYmiVatWQgghPvvsM7FgwQJlOw8PD3H0\n6FG9x6zq58/Ro0JYWwvxV7UkSaom8r1fqq1Ke24eCg0V052chADlNt3JSRwKDa3QcSu7vxBC3Llz\nR9SpU0fs3Lmz1G2ysrKEr6+vsLGxETY2NmLKlCkiOztbCCHEL7/8ImxtbcWiRYtEw4YNRZMmTURI\nSIgICwsTLVu2FA0aNBBBQUHKsWbPni0GDx4shgwZIrRarXj55ZfFyZMnlfymTZuKhQsXihdffFFo\nNBqRn58vjh49Kjp27Cjq168vXnrpJREZGalsv27dOuHo6Ci0Wq1o3ry52LJlixBCiIsXL4rOnTuL\nevXqCSsrKzFkyBBlH5VKJWJiYpT2e3t7i4YNG4qmTZuKwMBAUVBQoBy7U6dO4sMPPxQWFhaiefPm\nYu/evaWepwULFghbW1uh1WpFq1atxIEDByrU5vj4eDFo0CDRsGFD0bx5c7F8+XIlr6CgQAQFBQkn\nJydhaWkpPD09RUpKipK/ceNG4eDgICwtLcX8+fNFs2bNlHIfNGfOHPH222/rpBU/F0V27twpNBqN\nUk6XLl3Ev/71r4c6r1FRUcLe3l4cOnRIyW/ZsqXO49qkrM8P2eNCkiRJqnI3btzA2toaAGtra27c\n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\niIhIdWMymcqcZFOkotJQERGxG7Vdeffdd3nqqafw8vIiOjqauXPnUrt2bU6dOgUU/8enTp061vcX\nq+rHz/r4eL4a+Rhvpl649dwzuJIc9SmfrolxYmQi16eqt12pvHRsilRsl2uj5jJLRURErlNiYiJv\nvvkmhw4dwtfXl4ceeohPPvmkxDpX+o/P5MmTra8jIyOJjIy0U7SO16VXL3j/XV6YORPX3Fwsnp7c\nXeRK4cbP+GzBQwwYqP+ESeWQkJBAQkKCs8MQEZEqTD0uRMRu1Hart88++4xVq1bx/vvvAzB37lx+\n+ukn1qxZw9q1awkICCAlJYWoqCj27t1bavtqefzk5ZHV7k7iDscyYtcTNGvm7IBErl21bLtSKejY\nFKnYNDmniIg4XHBwMD/99BM5OTkYhsHq1asJCQmhd+/ezJkzB4A5c+bQt29fJ0dagXh44P31QiaZ\n4njlvo0UaJ5OEREREfW4EBH7UduV1157jTlz5uDi4kK7du14//33OXv2LDExMRw5cqRa3w71coyl\nyzg+4G+8PWobf59Rz9nhiFyT6tx2pWIrb04lEakYateuTXp6epnLlLgQEbtR25XrUd2Pn+wxE9n0\n3i/kL15Oz7vVQVIqj+redkVExPb0l5CIiEgFVOPfUwlrmc2Oh6aSlubsaEREREScR4kLERGRishs\nxm/FAv7Kf/lXr+8oKnJ2QCIiIiLOocSFiIhIRdWoEd5fzuWZnQ/z9t+POTsaEREREadQ4kJERKQC\nc+3ZDfOYxwl/bSCbNhY6OxwRERERh9PknCJiN2q7cj10/FykqIi09vey+OAtDDz8Kr6+zg5IpHxq\nuyIiYms27XGRm5tLp06dCAsLIyQkhGeffRaA9PR0evToQcuWLenZsycZGRnWbaZNm0aLFi0IDg5m\n5cqVtgxHRESkanBxwX/VJzxkmc97vZeia0IRERGpTmze4yI7O5saNWpQWFjInXfeyRtvvMHSpUup\nV68eEyZM4NVXX+XUqVPExcWxe/duYmNj2bx5M8nJyXTv3p19+/bh4lIyn6LMvUjlpLYr10PHT2l5\nCT+S2f1+vpv6MzETmzk7HJEyqe2KiIit2XyOixo1agCQn5+PxWKhdu3aLF26lKFDhwIwdOhQFi9e\nDMCSJUsYNGgQbm5uBAYG0rx5czZt2mTrkERERKoEj8jbKHjqWVo8H8PeX/KcHY6IiIiIQ9g8cVFU\n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\nqk7nfp33RUSkKlLiogyGYfDoo48SEhLC+PHjHVLniRMnyBjA1lYAAAejSURBVMjIACAnJ4dVq1YR\nHh5u93pfeeUVjh49ysGDB1mwYAF33XUXH3/8sd3rzc7O5uzZswBkZWWxcuVKh9xFICAggKZNm7Jv\n3z6geMxxaGio3es9b/78+QwaNMhh9QUHB/PTTz+Rk5ODYRisXr3aYd3Q//jjDwCOHDnCokWLHDY8\nRuTPcMZ5H3Tu17nf9nTeFxGRqsjs7AAuZ9CgQaxbt46TJ0/StGlTpkyZwvDhw+1e7w8//MAnn3xi\nvV0bFN9a7O6777ZbnSkpKQwdOpSioiKKiooYMmQI3bp1s1t95TGZTA6pJy0tjQceeAAo7sI7ePBg\nevbs6ZC6Z86cyeDBg8nPzycoKIjZs2c7pN6srCxWr17tsDHdALfccguPPPIIHTp0wMXFhXbt2vHY\nY485pO7+/ftz8uRJ3NzceOutt6hVq5ZD6pXKrTqd90Hnfp37bU/nfRERqYpMhqMHt4qIiIiIiIiI\nXCUNFRERERERERGRCkuJCxERERERERGpsJS4EBEREREREZEKS4kLEREREREREamwlLgQERERERER\nkQpLiQsRERERERERqbCUuBAREankUlNTGThwIM2bN6dDhw706tWL33//3dlhXZNRo0axZ8+e6/6c\njz76iDFjxtggIvt+poiIiFw9s7MDEBERkT/PMAweeOABhg8fzoIFCwDYuXMnaWlptGjRwu71FxYW\nYjZf/58T7733ng2iAZPJZJPPsfdnioiIyNVTjwsREZFKbO3atbi7u/PYY49Zy9q2bcudd94JwDPP\nPEObNm1o27YtCxcuBCAhIYGuXbvSt29fgoKCmDRpEnPnziUiIoK2bdty4MABAIYNG8Zf//pXOnbs\nyM0330x8fDxQ3AOhT58+dOvWjR49epCdnc2IESPo1KkT7dq1Y+nSpQD89ttvdOrUifDwcG655RYS\nExPJysqiV69ehIWF0aZNGz7//HMAIiMj2bp1KwDz58+nbdu2tGnThkmTJlm/V82aNXn++ecJCwvj\ntttu448//rjsvjl+/Dj9+/cnIiKCiIgINm7cSFFREc2aNeP06dPW9Vq0aMHx48fLXF9EREScT4kL\nERGRSuzXX3+lffv2ZS778ssv+eWXX9i5cyerV6/mmWeeITU1FSjulfHOO++wZ88e5s6dS2JiIps2\nbWLkyJHMnDnT+hlHjhxh8+bNxMfH89e//pW8vDwAtm/fzpdffsnatWt5+eWX6datGz///DNr1qzh\nmWeeITs7m3feeYdx48axfft2tm7dSuPGjVmxYgWNGzdmx44d7Nq1i+joaKC4V4PJZOLYsWNMmjSJ\ntWvXsmPHDjZv3sySJUsAyM7O5rbbbmPHjh106dLlir00xo0bxxNPPMGmTZv44osvGDlyJC4uLtx/\n//0sWrQIgJ9//plmzZpRv379MteH4l4tIiIi4jwaKiIiIlKJXW4Yww8//EBsbCwmk4kGDRrQtWtX\nNm/eTK1atejYsSP+/v4ANG/e3JpAaN26NWvXrrV+dkxMjHWdm266ib1792IymejRowd+fn4ArFy5\nkmXLlvHGG28AkJeXx5EjR7jtttuYOnUqSUlJPPjggzRv3py2bdvy9NNPM2nSJO677z5rzxAoThBs\n3ryZyMhI6tatC8DgwYNZv349999/P+7u7vTq1QuA9u3bs2rVqsvum9WrV5eYN+Ps2bNkZ2czYMAA\npkyZwrBhw1iwYAEDBgwod/2srKwr/QhERETEzpS4EBERqcRCQ0P54osvyl1+aW+B84kODw8Pa5mL\ni4v1vYuLC4WFheV+3vntvb29S5R/9dVXpebUCA4O5tZbb+Xrr7/m3nvv5Z133iEqKort27cTHx/P\n888/T7du3XjhhRdKff7F8Z8vc3NzKxHz5eI8v+3PP/+Mu7t7ifJbb72V/fv3c+LECZYsWcLf//73\ny66vOS5EREScS0NFREREKrG77rqLvLy8EsMmdu7cyffff0/nzp357LPPKCoq4vjx46xfv56IiIir\nHvpgGAaff/45hmGQmJjIgQMHCA4OLrV9dHQ0M2bMsL7fvn07AAcPHqRZs2aMGTOG+++/n507d5KS\nkoKnpyeDBw/m6aeftq4LxQmCiIgI1q1bx8mTJ7FYLCxYsICuXbte9f64OLaePXuWiGvHjh3Weh54\n4AGeeOIJQkJCqF279mXX11ARERER51LiQkREpJJbtGgRq1evpnnz5rRu3ZrnnnuOhg0b8sADD9C2\nbVtuueUWunXrxuuvv06DBg2s80mU5eJlJpOJG264gYiICGuPCXd391Lbv/DCCxQUFNC2bVtat27N\niy++CMDChQtp3bo14eHh/PbbbwwdOpRdu3ZZJ+ycMmUKzz//fIn6AwICiIuLIyoqirCwMDp06EDv\n3r2t8ZQVZ3nxz5gxgy1btnDLLbcQGhrKu+++a11vwIABzJs3zzpM5HLrX25/iYiIiP2ZDP0bQURE\nRMowfPhwevfuzYMPPujsUERERKQaU48LEREREREREamw1ONCRERERERERCos9bgQERERERERkQpL\niQsRERERERERqbCUuBARERERERGRCkuJCxERERERERGpsJS4EBEREREREZEKS4kLEREREREREamw\n/j8RzFMmQ7umlwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the less understanable plot in my opinion. Higher lines mean better speed, so we can see how working with the datasets in memory is faster than its disk counterpart." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Conclusions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general we have seen that for disk it is faster to use compressed data rather than the uncompressed one. What about memory? In the OHLC/Compression plot we can see that working with compressed data is nearly as fast (or sometimes even faster) than working with the uncompressed data. This is a very important point because you are not only working \"at the same speed\" but you are also saving memory.\n", "\n", "**Regarding speed**\n", "\n", "Reading and writing data from disk are really slow operations. Due to processors being very fast it is actually faster for most cases to compress the data before writing it to disk (so you write less data that is the slow operation) than writing the uncompressed data. This is true for both reading and writing data from disk. This is becoming true for memory too, as shown before.\n", "\n", "**Regarding memory**\n", "\n", "When working with big data I have realized that RAM memory is a big issue, you can't or shouldn't fit all the data in it. And that why BLZ is awesome, it allows you to work with big data without on disk without actually trying to load it all into memory. And I have shown in previous tutorials that those containers are really fast.\n", "\n", "Also we are getting up to a 34 compression ratio, that means we are storing 34 times less data on disk, which allows us to store even more data!" ] } ], "metadata": {} } ] }