Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@lbolla
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lbolla/1bec1b70ef9c8e254b57 to your computer and use it in GitHub Desktop.
Save lbolla/1bec1b70ef9c8e254b57 to your computer and use it in GitHub Desktop.
import StringIO
import cPickle
small = [{i: i} for i in xrange(9)]
medium = [{i: i} for i in xrange(999)]
large = [{i: i} for i in xrange(999999)]
def dumps(obj):
return cPickle.dumps(obj)
def dumps_highest_protocol(obj):
return cPickle.dumps(obj, cPickle.HIGHEST_PROTOCOL)
def dumps_fast_mode(obj):
buff = StringIO.StringIO()
pickler = cPickle.Pickler(buff, cPickle.HIGHEST_PROTOCOL)
pickler.fast = 1
pickler.dump(obj)
buff.flush()
return buff.getvalue()
#!/bin/sh
echo 'SMALL'
echo 'dumps' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps(p.small)"
echo 'highp' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps_highest_protocol(p.small)"
echo 'pickl' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps_fast_mode(p.small)"
echo
echo 'MEDIUM'
echo 'dumps' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps(p.medium)"
echo 'highp' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps_highest_protocol(p.medium)"
echo 'pickl' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps_fast_mode(p.medium)"
echo
echo 'LARGE'
echo 'dumps' && python -m timeit -n 3 -s "import pickle_experiments as p" "p.dumps(p.large)"
echo 'highp' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps_highest_protocol(p.large)"
echo 'pickl' && python -m timeit -n 10 -s "import pickle_experiments as p" "p.dumps_fast_mode(p.large)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment