pydata/pandas — pull request #5498 by jreback (2013-11-12 15:39:50+00:00)
Title: PERF: msgpack encoding changnes to use to/from string for speed boosts

API: disable sparse structure encodings and unicode indexes

```
-------------------------------------------------------------------------------
Test name | head[ms] | base[ms] | ratio |
-------------------------------------------------------------------------------
packers_read_pack | 3.5113 | 17.8316 | 0.1969 |
packers_read_pickle | 0.6769 | 0.6770 | 0.9999 |
packers_write_pack | 1.8814 | 3.5230 | 0.5340 |
packers_write_pickle | 1.5387 | 1.4664 | 1.0493 |

packers_write_hdf_store | 12.1900 | 12.2033 | 0.9989 |
packers_read_csv | 52.3347 | 52.2310 | 1.0020 |
packers_write_csv | 536.2056 | 526.5187 | 1.0184 |
packers_write_hdf_table | 33.3436 | 32.4137 | 1.0287 |
packers_read_hdf_store | 8.3120 | 8.0493 | 1.0326 |
packers_read_hdf_table | 13.9607 | 12.9707 | 1.0763 |
-------------------------------------------------------------------------------
Test name | head[ms] | base[ms] | ratio |
-------------------------------------------------------------------------------

Ratio < 1.0 means the target commit is faster then the baseline.
Seed used: 1234

Target [381e86b] : PERF: msgpack encoding changnes to use to/from string for speed boosts
API: disable sparse structure encodings and unicode indexes
Base [46008ec] : DOC: add cookbook entry
```

A smaller frame
```
In [1]: df = DataFrame(np.random.rand(1000,100))

In [7]: %timeit -n 5 df.to_pickle('test.pickle')
5 loops, best of 3: 9.4 ms per loop

In [8]: %timeit -n 5 df.to_msgpack('test.pack')
5 loops, best of 3: 10.1 ms per loop
```

now pretty competitive with pickle