Skip to content

Instantly share code, notes, and snippets.

@ringsaturn
Last active July 30, 2019 09:55
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 ringsaturn/5e8dab269d3c3d561d9b985ddc433d14 to your computer and use it in GitHub Desktop.
Save ringsaturn/5e8dab269d3c3d561d9b985ddc433d14 to your computer and use it in GitHub Desktop.
import pickle
import time
import numpy as np
import orjson
import pandas._libs.json as pdujson
import nujson
n = 20000
val = pickle.load(open('sample.pkl', 'rb'))
# Test orjson
def default(obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
if isinstance(obj, np.float64):
return float(obj)
if isinstance(obj, np.str_):
return str(obj)
start = time.process_time()
for i in range(n):
orjson.dumps(val, default=default)
elapsed = (time.process_time() - start)
print("orjson time used:", elapsed)
# Test Pandas ujson
start = time.process_time()
for i in range(n):
pdujson.dumps(val)
elapsed = (time.process_time() - start)
print("pandas time used:", elapsed)
# Test nujson
start = time.process_time()
for i in range(n):
nujson.dumps(val)
elapsed = (time.process_time() - start)
print("nujson time used:", elapsed)
orjson time used: 18.883733
pandas time used: 10.571927000000002
nujson time used: 7.919490000000003
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment