├── results ├── avg_size_1m_objects.png ├── avg_ser_time_1m_objects.png ├── ser_time_single_object.png ├── avg_serde_time_1m_objects.png ├── results-summary.csv └── detailed-results.json ├── conda-env.yml ├── book.proto ├── .gitignore ├── Makefile ├── LICENSE ├── README.md ├── bench_helper.py ├── gendata.py ├── book_pb2.py └── benchmarks.py /results/avg_size_1m_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shmuelamar/python-serialization-benchmarks/HEAD/results/avg_size_1m_objects.png -------------------------------------------------------------------------------- /results/avg_ser_time_1m_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shmuelamar/python-serialization-benchmarks/HEAD/results/avg_ser_time_1m_objects.png -------------------------------------------------------------------------------- /results/ser_time_single_object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shmuelamar/python-serialization-benchmarks/HEAD/results/ser_time_single_object.png -------------------------------------------------------------------------------- /results/avg_serde_time_1m_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shmuelamar/python-serialization-benchmarks/HEAD/results/avg_serde_time_1m_objects.png -------------------------------------------------------------------------------- /conda-env.yml: -------------------------------------------------------------------------------- 1 | name: serialization-bench 2 | dependencies: 3 | - python=3.7 4 | - ipython 5 | - cython 6 | - pandas 7 | - jupyterlab 8 | - pyarrow=0.11.1 # parquet 9 | 10 | - pip: 11 | - altair 12 | - pymongo==3.7.2 # bson 13 | - cbor==1.0.0 14 | - msgpack==0.5.6 15 | - protobuf==3.6.1 16 | - ujson==1.35 17 | -------------------------------------------------------------------------------- /book.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto2"; 2 | 3 | package Books; 4 | 5 | 6 | message Book { 7 | required string title = 1; 8 | required string author = 2; 9 | required uint32 sales = 3; 10 | required bool is_published = 4; 11 | 12 | repeated string languages = 5; 13 | 14 | message Review { 15 | required string author = 1; 16 | required string comment = 2; 17 | } 18 | 19 | repeated Review reviews = 6; 20 | 21 | required double price = 7; 22 | } 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | *~ 6 | 7 | # Installer logs 8 | pip-log.txt 9 | pip-delete-this-directory.txt 10 | 11 | # Unit test / coverage reports 12 | htmlcov/ 13 | .tox/ 14 | .coverage 15 | .cache 16 | nosetests.xml 17 | coverage.xml 18 | report.xml 19 | 20 | # Sphinx documentation 21 | docs/_build/ 22 | doc/build/ 23 | 24 | # PyBuilder 25 | target/ 26 | 27 | venv 28 | *.sw[po] 29 | 30 | # pyCharm IDE 31 | .idea/ 32 | 33 | # builds 34 | dist/ 35 | build/ 36 | *.egg-info/ 37 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SHELL := $(shell which bash) 2 | PROJECT := serialization-bench 3 | ACTIVATE_VENV = source activate ${PROJECT} 4 | ENV_FILE := "conda-env.yml" 5 | 6 | rm-env: 7 | -conda env remove -y --name ${PROJECT} 8 | 9 | setup-env: 10 | -conda create -y --name ${PROJECT} 11 | conda env update --name ${PROJECT} --file ${ENV_FILE} 12 | 13 | bench: 14 | ${ACTIVATE_VENV} && \ 15 | export PYTHONPATH=./$(PROJECT):$$PYTHONPATH && \ 16 | python benchmarks.py 17 | 18 | validate: 19 | ${ACTIVATE_VENV} && flake8 $(PROJECT)/ tests/ 20 | 21 | all: 22 | $(error please pick a target) 23 | 24 | .PHONY: clean validate 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Shmuel Amar 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python Serialization Benchmarks 2 | 3 | ## Benchmarked Libraries 4 | 5 | * bson v3.7.2 (pymongo version) 6 | * cbor v1.0.0 7 | * json v2.0.9 (python v3.7.1) 8 | * msgpack v0.5.6 9 | * parquet v0.11.1 (pyarrow version) 10 | * pickle v3.7.1 (python version) 11 | * protobuf v3.6.1 12 | * ujson v1.35 13 | 14 | 15 | ## Results 16 | 17 | ![serialization bench](results/avg_serde_time_1m_objects.png) 18 | 19 | ![serialization bench](results/ser_time_single_object.png) 20 | 21 | ![serialization bench](results/avg_ser_time_1m_objects.png) 22 | 23 | ![serialization bench](results/avg_size_1m_objects.png) 24 | 25 | 26 | detailed results can be found on `results/` dir 27 | 28 | **Machine Info:** Linux 64bit, CPython 3.7.1 build: GCC 7.3.0 default-Dec 14 2018 19:28:38 29 | 30 | ## Running Benchmarks Locally 31 | 32 | **requirements:** 33 | * miniconda 34 | * make 35 | 36 | 37 | first lets setup miniconda env with the requirements: 38 | 39 | ```bash 40 | $ make setup-env 41 | ``` 42 | 43 | run the benchmarks: 44 | 45 | ```bash 46 | $ make bench 47 | ``` 48 | 49 | the above will create two files - `results-summary.csv` and `detailed-results.json` 50 | -------------------------------------------------------------------------------- /bench_helper.py: -------------------------------------------------------------------------------- 1 | import platform 2 | import statistics 3 | import time 4 | from collections import namedtuple 5 | 6 | Took = namedtuple('Took', ['avg', 'min', 'max', 'stdev', 'timings']) 7 | 8 | 9 | def bench_function(name, serialize_fn, deserialize_fn, data): 10 | raw, ser_took = took(serialize_fn, repeats=10, args=(data,)) 11 | des_data, deser_took = took(deserialize_fn, repeats=10, args=(raw,)) 12 | err_msg = '' 13 | 14 | assert len(data) == len(des_data) 15 | return ser_took, deser_took, len(raw), err_msg 16 | 17 | 18 | def get_machine_info(): 19 | system = platform.system() 20 | bits = platform.architecture()[0] 21 | pyver = f'{platform.python_implementation()} {platform.python_version()}' 22 | py_build_ver = f'{platform.python_compiler()} {"-".join(platform.python_build())}' # noqa 23 | return f'{system} {bits}, {pyver} build: {py_build_ver}' 24 | 25 | 26 | def took(fn, repeats=1, args=(), ndigits=6): 27 | timings = [] 28 | res = None 29 | 30 | for _ in range(repeats): 31 | runtime = -time.process_time() 32 | res = fn(*args) 33 | 34 | runtime += time.process_time() 35 | timings.append(runtime) 36 | 37 | min_time = min(timings) 38 | max_time = max(timings) 39 | avg_time = sum(timings) / repeats 40 | stdev_time = statistics.pstdev(timings) 41 | 42 | return res, Took( 43 | avg=round(avg_time, ndigits), 44 | min=round(min_time, ndigits), 45 | max=round(max_time, ndigits), 46 | stdev=round(stdev_time, ndigits), 47 | timings=[round(t, 5) for t in timings], 48 | ) 49 | 50 | 51 | def baseline_ratio(fn_took, baseline_took, ndigits=4): 52 | return { 53 | 'baseline-speedup': round(baseline_took['avg'] / fn_took['avg'], ndigits), 54 | 'baseline-ratio': round(fn_took['avg'] * 100 / baseline_took['avg'], ndigits), 55 | } 56 | -------------------------------------------------------------------------------- /gendata.py: -------------------------------------------------------------------------------- 1 | import random 2 | import string 3 | from collections import namedtuple 4 | from copy import deepcopy 5 | 6 | include_ranges = [ 7 | (0x0021, 0x0021), 8 | (0x0023, 0x0026), 9 | (0x0028, 0x007E), 10 | (0x00A1, 0x00AC), 11 | (0x00AE, 0x00FF), 12 | (0x0100, 0x017F), 13 | (0x0180, 0x024F), 14 | (0x2C60, 0x2C7F), 15 | (0x16A0, 0x16F0), 16 | (0x0370, 0x0377), 17 | (0x037A, 0x037E), 18 | (0x0384, 0x038A), 19 | (0x038C, 0x038C), 20 | ] 21 | unicode_alphabet = [ 22 | chr(code_point) for current_range in include_ranges 23 | for code_point in range(current_range[0], current_range[1] + 1) 24 | ] 25 | Book = namedtuple('Book', [ 26 | 'title', 'author', 'sales', 'is_published', 'languages', 'reviews', 'price' 27 | ]) 28 | Review = namedtuple('Review', ['author', 'comment']) 29 | 30 | 31 | def get_json_data(n=1000, float_ndigits=8): 32 | languages = ('en', 'he', 'es', 'de') 33 | max_sales = int(2 ** 31 - 1) 34 | 35 | # for reproducibility 36 | random.seed(42) 37 | 38 | books = [ 39 | { 40 | 'title': randstring(), 41 | 'author': randstring(), 42 | 'sales': random.randint(0, max_sales), 43 | 'is_published': random.choice((True, False)), 44 | 'languages': random.sample(languages, k=random.randint(1, 4)), 45 | 'reviews': [ 46 | { 47 | 'author': randstring(), 48 | 'comment': randunicode(), 49 | } for _ in range(random.randint(0, 4)) 50 | ], 51 | 'price': round(random.random() * 100, float_ndigits), 52 | } for _ in range(n) 53 | ] 54 | return books 55 | 56 | 57 | def get_tuples_data(data): 58 | data = deepcopy(data) 59 | for x in data: 60 | x['reviews'] = [list(Review(**r)) for r in x['reviews']] 61 | return [list(Book(**x)) for x in data] 62 | 63 | 64 | def randstring(): 65 | slen = random.randint(0, 24) 66 | return ''.join(random.choices(string.printable, k=slen)) 67 | 68 | 69 | def randunicode(): 70 | slen = random.randint(0, 100) 71 | return ''.join(random.choices(unicode_alphabet, k=slen)) 72 | -------------------------------------------------------------------------------- /book_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: book.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='book.proto', 20 | package='Books', 21 | syntax='proto2', 22 | serialized_pb=_b('\n\nbook.proto\x12\x05\x42ooks\"\xbc\x01\n\x04\x42ook\x12\r\n\x05title\x18\x01 \x02(\t\x12\x0e\n\x06\x61uthor\x18\x02 \x02(\t\x12\r\n\x05sales\x18\x03 \x02(\r\x12\x14\n\x0cis_published\x18\x04 \x02(\x08\x12\x11\n\tlanguages\x18\x05 \x03(\t\x12#\n\x07reviews\x18\x06 \x03(\x0b\x32\x12.Books.Book.Review\x12\r\n\x05price\x18\x07 \x02(\x01\x1a)\n\x06Review\x12\x0e\n\x06\x61uthor\x18\x01 \x02(\t\x12\x0f\n\x07\x63omment\x18\x02 \x02(\t') 23 | ) 24 | 25 | 26 | 27 | 28 | _BOOK_REVIEW = _descriptor.Descriptor( 29 | name='Review', 30 | full_name='Books.Book.Review', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | fields=[ 35 | _descriptor.FieldDescriptor( 36 | name='author', full_name='Books.Book.Review.author', index=0, 37 | number=1, type=9, cpp_type=9, label=2, 38 | has_default_value=False, default_value=_b("").decode('utf-8'), 39 | message_type=None, enum_type=None, containing_type=None, 40 | is_extension=False, extension_scope=None, 41 | options=None, file=DESCRIPTOR), 42 | _descriptor.FieldDescriptor( 43 | name='comment', full_name='Books.Book.Review.comment', index=1, 44 | number=2, type=9, cpp_type=9, label=2, 45 | has_default_value=False, default_value=_b("").decode('utf-8'), 46 | message_type=None, enum_type=None, containing_type=None, 47 | is_extension=False, extension_scope=None, 48 | options=None, file=DESCRIPTOR), 49 | ], 50 | extensions=[ 51 | ], 52 | nested_types=[], 53 | enum_types=[ 54 | ], 55 | options=None, 56 | is_extendable=False, 57 | syntax='proto2', 58 | extension_ranges=[], 59 | oneofs=[ 60 | ], 61 | serialized_start=169, 62 | serialized_end=210, 63 | ) 64 | 65 | _BOOK = _descriptor.Descriptor( 66 | name='Book', 67 | full_name='Books.Book', 68 | filename=None, 69 | file=DESCRIPTOR, 70 | containing_type=None, 71 | fields=[ 72 | _descriptor.FieldDescriptor( 73 | name='title', full_name='Books.Book.title', index=0, 74 | number=1, type=9, cpp_type=9, label=2, 75 | has_default_value=False, default_value=_b("").decode('utf-8'), 76 | message_type=None, enum_type=None, containing_type=None, 77 | is_extension=False, extension_scope=None, 78 | options=None, file=DESCRIPTOR), 79 | _descriptor.FieldDescriptor( 80 | name='author', full_name='Books.Book.author', index=1, 81 | number=2, type=9, cpp_type=9, label=2, 82 | has_default_value=False, default_value=_b("").decode('utf-8'), 83 | message_type=None, enum_type=None, containing_type=None, 84 | is_extension=False, extension_scope=None, 85 | options=None, file=DESCRIPTOR), 86 | _descriptor.FieldDescriptor( 87 | name='sales', full_name='Books.Book.sales', index=2, 88 | number=3, type=13, cpp_type=3, label=2, 89 | has_default_value=False, default_value=0, 90 | message_type=None, enum_type=None, containing_type=None, 91 | is_extension=False, extension_scope=None, 92 | options=None, file=DESCRIPTOR), 93 | _descriptor.FieldDescriptor( 94 | name='is_published', full_name='Books.Book.is_published', index=3, 95 | number=4, type=8, cpp_type=7, label=2, 96 | has_default_value=False, default_value=False, 97 | message_type=None, enum_type=None, containing_type=None, 98 | is_extension=False, extension_scope=None, 99 | options=None, file=DESCRIPTOR), 100 | _descriptor.FieldDescriptor( 101 | name='languages', full_name='Books.Book.languages', index=4, 102 | number=5, type=9, cpp_type=9, label=3, 103 | has_default_value=False, default_value=[], 104 | message_type=None, enum_type=None, containing_type=None, 105 | is_extension=False, extension_scope=None, 106 | options=None, file=DESCRIPTOR), 107 | _descriptor.FieldDescriptor( 108 | name='reviews', full_name='Books.Book.reviews', index=5, 109 | number=6, type=11, cpp_type=10, label=3, 110 | has_default_value=False, default_value=[], 111 | message_type=None, enum_type=None, containing_type=None, 112 | is_extension=False, extension_scope=None, 113 | options=None, file=DESCRIPTOR), 114 | _descriptor.FieldDescriptor( 115 | name='price', full_name='Books.Book.price', index=6, 116 | number=7, type=1, cpp_type=5, label=2, 117 | has_default_value=False, default_value=float(0), 118 | message_type=None, enum_type=None, containing_type=None, 119 | is_extension=False, extension_scope=None, 120 | options=None, file=DESCRIPTOR), 121 | ], 122 | extensions=[ 123 | ], 124 | nested_types=[_BOOK_REVIEW, ], 125 | enum_types=[ 126 | ], 127 | options=None, 128 | is_extendable=False, 129 | syntax='proto2', 130 | extension_ranges=[], 131 | oneofs=[ 132 | ], 133 | serialized_start=22, 134 | serialized_end=210, 135 | ) 136 | 137 | _BOOK_REVIEW.containing_type = _BOOK 138 | _BOOK.fields_by_name['reviews'].message_type = _BOOK_REVIEW 139 | DESCRIPTOR.message_types_by_name['Book'] = _BOOK 140 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 141 | 142 | Book = _reflection.GeneratedProtocolMessageType('Book', (_message.Message,), dict( 143 | 144 | Review = _reflection.GeneratedProtocolMessageType('Review', (_message.Message,), dict( 145 | DESCRIPTOR = _BOOK_REVIEW, 146 | __module__ = 'book_pb2' 147 | # @@protoc_insertion_point(class_scope:Books.Book.Review) 148 | )) 149 | , 150 | DESCRIPTOR = _BOOK, 151 | __module__ = 'book_pb2' 152 | # @@protoc_insertion_point(class_scope:Books.Book) 153 | )) 154 | _sym_db.RegisterMessage(Book) 155 | _sym_db.RegisterMessage(Book.Review) 156 | 157 | 158 | # @@protoc_insertion_point(module_scope) 159 | -------------------------------------------------------------------------------- /benchmarks.py: -------------------------------------------------------------------------------- 1 | import csv 2 | import io 3 | import json 4 | import pickle 5 | import struct 6 | import ujson 7 | from functools import partial 8 | 9 | import bson 10 | import cbor 11 | import msgpack 12 | import pandas as pd 13 | import pyarrow as pa 14 | from pyarrow import parquet as pq 15 | 16 | from bench_helper import bench_function, baseline_ratio, get_machine_info 17 | from book_pb2 import Book as PBBook 18 | from gendata import get_json_data, get_tuples_data, Book 19 | 20 | 21 | # [De]Serializers functions 22 | 23 | def parquet_dumps(seq): 24 | df = pd.DataFrame( 25 | {field: [x[field] for x in seq] for field in range(len(Book._fields))} 26 | ) 27 | table = pa.Table.from_pandas(df) 28 | out = io.BytesIO() 29 | pq.write_table(table, out) 30 | out.seek(0) 31 | return out.getvalue() 32 | 33 | 34 | def parquet_loads(raw): 35 | # Note: usually want to call to_pandas() 36 | return pq.read_table(io.BytesIO(raw)) 37 | 38 | 39 | def protobuf_dumps(tuples): 40 | def to_raw_book(tup): 41 | book = PBBook() 42 | book.title = tup[0] 43 | book.author = tup[1] 44 | book.sales = tup[2] 45 | book.is_published = tup[3] 46 | 47 | book.languages.extend(tup[4]) 48 | 49 | for review_data in tup[5]: 50 | review = book.reviews.add() 51 | review.author = review_data[0] 52 | review.comment = review_data[1] 53 | 54 | book.price = tup[6] 55 | return book.SerializeToString() 56 | 57 | raw_books = map(to_raw_book, tuples) 58 | # encode every message with a prefix of its length 59 | return b''.join(struct.pack('i', len(raw)) + raw for raw in raw_books) 60 | 61 | 62 | def protobuf_loads(raw): 63 | books = [] 64 | len_idx = 0 65 | while len_idx < len(raw): 66 | msg_idx = len_idx + 4 67 | msg_len = struct.unpack('i', raw[len_idx: msg_idx])[0] 68 | book = PBBook() 69 | book.ParseFromString(raw[msg_idx: msg_idx + msg_len]) 70 | books.append(book) 71 | len_idx = msg_idx + msg_len 72 | return books 73 | 74 | 75 | SERIALIZERS = ( 76 | ('json', json.dumps, json.loads), 77 | ('pickle', pickle.dumps, pickle.loads), 78 | ('bson', lambda seq: b''.join(map(bson.BSON.encode, seq)), bson.decode_all), 79 | ('ujson', ujson.dumps, ujson.loads), 80 | ('parquet', parquet_dumps, parquet_loads), 81 | ('protobuf', protobuf_dumps, protobuf_loads), 82 | ('cbor', cbor.dumps, cbor.loads), 83 | ('msgpack', msgpack.dumps, partial(msgpack.loads, raw=False)), 84 | ) 85 | BASELINE = 'json' 86 | ITEMS = (1, 1_000, 10_000, 100_000, 1_000_000) 87 | SKIP_LIST = [ 88 | ('dicts', 'parquet'), # parquet requires schema 89 | ('dicts', 'protobuf'), # protobuf requires schema 90 | ('tuples', 'bson'), # cannot make bson to work with tuples 91 | ] 92 | 93 | 94 | def main(): 95 | name_tmpl = '{name}_{dtype}_{fn}_{items}' 96 | results = {} 97 | 98 | print('machine info:') 99 | print(f'{get_machine_info()}') 100 | 101 | print(f'generating {max(ITEMS)} random data items..', end=' ') 102 | max_dict_data = get_json_data(n=max(ITEMS)) 103 | max_tuples_data = get_tuples_data(max_dict_data) 104 | print('done') 105 | 106 | for i, items in enumerate(ITEMS): 107 | dict_data = max_dict_data[:items] 108 | tuples_data = max_tuples_data[:items] 109 | 110 | for dtype, data in (('dicts', dict_data), ('tuples', tuples_data)): 111 | for name, ser_fn, deser_fn in SERIALIZERS: 112 | print(f'{name} {dtype} {items}..', end=' ') 113 | 114 | # some tests cannot be run (see SKIP_LIST for details) 115 | if (dtype, name) in SKIP_LIST: 116 | print('skip') 117 | continue 118 | 119 | # benchmark the format's load & dump 120 | ser_took, deser_took, ser_size, err = bench_function(name, ser_fn, deser_fn, data) 121 | 122 | # fomat nice name for results 123 | dump_name = name_tmpl.format(name=name, dtype=dtype, fn='dump', items=items) 124 | baseline_dump_name = name_tmpl.format(name=BASELINE, dtype=dtype, fn='dump', items=items) 125 | load_name = name_tmpl.format(name=name, dtype=dtype, fn='load', items=items) 126 | baseline_load_name = name_tmpl.format(name=BASELINE, dtype=dtype, fn='load', items=items) 127 | avg_serde = (ser_took.avg + deser_took.avg) / 2. 128 | 129 | common_values = { 130 | 'err': err, 131 | 'name': name, 132 | 'dtype': dtype, 133 | 'items': items, 134 | } 135 | results[dump_name] = { 136 | 'fn': 'dump', 137 | 'avg_serde': avg_serde, 138 | 'serialized_size': ser_size, **common_values, 139 | **ser_took._asdict() 140 | } 141 | results[load_name] = { 142 | 'fn': 'load', 143 | 'avg_serde': avg_serde, 144 | 'serialized_size': ser_size, **common_values, 145 | **deser_took._asdict() 146 | } 147 | 148 | baseline_ser_took = results[baseline_dump_name] 149 | baseline_deser_took = results[baseline_load_name] 150 | results[dump_name].update( 151 | baseline_ratio(results[dump_name], baseline_ser_took)) 152 | results[load_name].update( 153 | baseline_ratio(results[load_name], baseline_deser_took)) 154 | print('done') 155 | 156 | # write results as detailed json 157 | with open('detailed-results.json', 'w') as fp: 158 | json.dump(results, fp, indent=4) 159 | 160 | # write csv results summary 161 | with open('results-summary.csv', 'w') as fp: 162 | writer = csv.DictWriter(fp, extrasaction='ignore', fieldnames=( 163 | 'name', 'dtype', 'fn', 'items', 'avg', 'avg_serde', 164 | 'baseline-ratio', 'baseline-speedup', 'serialized_size', 165 | )) 166 | writer.writeheader() 167 | 168 | for name, result in sorted(results.items()): 169 | writer.writerow(result) 170 | 171 | for name, result in sorted(results.items()): 172 | print( 173 | f'{name: <40} avg: {result["avg"]:.5f}\t' 174 | f'baseline-ratio: {result["baseline-ratio"]:.2f}%\t' 175 | f'speedup: x{result["baseline-speedup"]:.2f}\t' 176 | f'{result["err"]}' 177 | ) 178 | 179 | 180 | if __name__ == '__main__': 181 | main() 182 | -------------------------------------------------------------------------------- /results/results-summary.csv: -------------------------------------------------------------------------------- 1 | name,dtype,fn,items,avg,avg_serde,baseline-ratio,baseline-speedup,serialized_size 2 | bson,dicts,dump,1,1.7e-05,1.2499999999999999e-05,100.0,1.0,498 3 | bson,dicts,dump,1000,0.013215,0.009125,351.0893,0.2848,438651 4 | bson,dicts,dump,10000,0.085347,0.05980200000000001,203.7164,0.4909,4425432 5 | bson,dicts,dump,100000,0.971436,0.7117445,211.2267,0.4734,44608350 6 | bson,dicts,dump,1000000,9.722888,7.926932,200.1367,0.4997,446883139 7 | bson,dicts,load,1,8e-06,1.2499999999999999e-05,44.4444,2.25,498 8 | bson,dicts,load,1000,0.005035,0.009125,51.3199,1.9486,438651 9 | bson,dicts,load,10000,0.034257,0.05980200000000001,37.414,2.6728,4425432 10 | bson,dicts,load,100000,0.452053,0.7117445,41.2709,2.423,44608350 11 | bson,dicts,load,1000000,6.130976,7.926932,54.9966,1.8183,446883139 12 | cbor,dicts,dump,1,4e-06,4e-06,23.5294,4.25,435 13 | cbor,dicts,dump,1000,0.001811,0.00245,48.1137,2.0784,364209 14 | cbor,dicts,dump,10000,0.015754,0.023370500000000002,37.6035,2.6593,3681356 15 | cbor,dicts,dump,100000,0.177986,0.34472749999999996,38.7009,2.5839,37157995 16 | cbor,dicts,dump,1000000,1.803696,3.8018799999999997,37.1274,2.6934,372329891 17 | cbor,dicts,load,1,4e-06,4e-06,22.2222,4.5,435 18 | cbor,dicts,load,1000,0.003089,0.00245,31.4851,3.1761,364209 19 | cbor,dicts,load,10000,0.030987,0.023370500000000002,33.8426,2.9549,3681356 20 | cbor,dicts,load,100000,0.511469,0.34472749999999996,46.6953,2.1415,37157995 21 | cbor,dicts,load,1000000,5.800064,3.8018799999999997,52.0282,1.922,372329891 22 | cbor,tuples,dump,1,2e-06,2e-06,20.0,5.0,349 23 | cbor,tuples,dump,1000,0.000803,0.00124,21.3677,4.68,278779 24 | cbor,tuples,dump,10000,0.011121,0.015019500000000002,35.8858,2.7866,2823831 25 | cbor,tuples,dump,100000,0.115195,0.2998205,35.2122,2.8399,28566830 26 | cbor,tuples,dump,1000000,1.296958,2.647685,36.9362,2.7074,286359111 27 | cbor,tuples,load,1,2e-06,2e-06,14.2857,7.0,349 28 | cbor,tuples,load,1000,0.001677,0.00124,16.9308,5.9064,278779 29 | cbor,tuples,load,10000,0.018918,0.015019500000000002,24.8797,4.0193,2823831 30 | cbor,tuples,load,100000,0.484446,0.2998205,45.4029,2.2025,28566830 31 | cbor,tuples,load,1000000,3.998412,2.647685,38.9618,2.5666,286359111 32 | json,dicts,dump,1,1.7e-05,1.75e-05,100.0,1.0,934 33 | json,dicts,dump,1000,0.003764,0.0067875,100.0,1.0,761200 34 | json,dicts,dump,10000,0.041895,0.0667285,100.0,1.0,7713196 35 | json,dicts,dump,100000,0.459902,0.777617,100.0,1.0,77995071 36 | json,dicts,dump,1000000,4.858123,8.00302,100.0,1.0,781815927 37 | json,dicts,load,1,1.8e-05,1.75e-05,100.0,1.0,934 38 | json,dicts,load,1000,0.009811,0.0067875,100.0,1.0,761200 39 | json,dicts,load,10000,0.091562,0.0667285,100.0,1.0,7713196 40 | json,dicts,load,100000,1.095332,0.777617,100.0,1.0,77995071 41 | json,dicts,load,1000000,11.147917,8.00302,100.0,1.0,781815927 42 | json,tuples,dump,1,1e-05,1.2e-05,100.0,1.0,815 43 | json,tuples,dump,1000,0.003758,0.006831500000000001,100.0,1.0,642998 44 | json,tuples,dump,10000,0.03099,0.053514,100.0,1.0,6526661 45 | json,tuples,dump,100000,0.327145,0.6970695,100.0,1.0,66107440 46 | json,tuples,dump,1000000,3.511346,6.8868675,100.0,1.0,662856835 47 | json,tuples,load,1,1.4e-05,1.2e-05,100.0,1.0,815 48 | json,tuples,load,1000,0.009905,0.006831500000000001,100.0,1.0,642998 49 | json,tuples,load,10000,0.076038,0.053514,100.0,1.0,6526661 50 | json,tuples,load,100000,1.066994,0.6970695,100.0,1.0,66107440 51 | json,tuples,load,1000000,10.262389,6.8868675,100.0,1.0,662856835 52 | msgpack,dicts,dump,1,4e-06,4e-06,23.5294,4.25,437 53 | msgpack,dicts,dump,1000,0.001016,0.0023150000000000002,26.9926,3.7047,365629 54 | msgpack,dicts,dump,10000,0.010236,0.0199705,24.4325,4.0929,3695629 55 | msgpack,dicts,dump,100000,0.123262,0.2627565,26.8018,3.7311,37301784 56 | msgpack,dicts,dump,1000000,1.234061,3.2461575,25.402,3.9367,373773160 57 | msgpack,dicts,load,1,4e-06,4e-06,22.2222,4.5,437 58 | msgpack,dicts,load,1000,0.003614,0.0023150000000000002,36.8362,2.7147,365629 59 | msgpack,dicts,load,10000,0.029705,0.0199705,32.4425,3.0824,3695629 60 | msgpack,dicts,load,100000,0.402251,0.2627565,36.7241,2.723,37301784 61 | msgpack,dicts,load,1000000,5.258254,3.2461575,47.168,2.1201,373773160 62 | msgpack,tuples,dump,1,4e-06,3e-06,40.0,2.5,351 63 | msgpack,tuples,dump,1000,0.000845,0.001219,22.4854,4.4473,280199 64 | msgpack,tuples,dump,10000,0.008103,0.012971,26.1471,3.8245,2838104 65 | msgpack,tuples,dump,100000,0.09205,0.234677,28.1374,3.554,28710619 66 | msgpack,tuples,dump,1000000,0.977056,2.5605675,27.8257,3.5938,287802380 67 | msgpack,tuples,load,1,2e-06,3e-06,14.2857,7.0,351 68 | msgpack,tuples,load,1000,0.001593,0.001219,16.0828,6.2178,280199 69 | msgpack,tuples,load,10000,0.017839,0.012971,23.4606,4.2625,2838104 70 | msgpack,tuples,load,100000,0.377304,0.234677,35.3614,2.8279,28710619 71 | msgpack,tuples,load,1000000,4.144079,2.5605675,40.3812,2.4764,287802380 72 | parquet,tuples,dump,1,0.002292,0.001433,22920.0,0.0044,3829 73 | parquet,tuples,dump,1000,0.009261,0.0056135000000000004,246.4343,0.4058,300703 74 | parquet,tuples,dump,10000,0.039377,0.0249785,127.0636,0.787,3011053 75 | parquet,tuples,dump,100000,0.383494,0.2424675,117.2245,0.8531,30153830 76 | parquet,tuples,dump,1000000,3.36088,2.13236,95.7149,1.0448,294309649 77 | parquet,tuples,load,1,0.000574,0.001433,4100.0,0.0244,3829 78 | parquet,tuples,load,1000,0.001966,0.0056135000000000004,19.8486,5.0381,300703 79 | parquet,tuples,load,10000,0.01058,0.0249785,13.9141,7.187,3011053 80 | parquet,tuples,load,100000,0.101441,0.2424675,9.5072,10.5184,30153830 81 | parquet,tuples,load,1000000,0.90384,2.13236,8.8073,11.3542,294309649 82 | pickle,dicts,dump,1,4e-06,4.5e-06,23.5294,4.25,532 83 | pickle,dicts,dump,1000,0.001329,0.002261,35.3082,2.8322,380942 84 | pickle,dicts,dump,10000,0.015828,0.071867,37.7802,2.6469,3852412 85 | pickle,dicts,dump,100000,0.269439,0.3059315,58.5862,1.7069,38874514 86 | pickle,dicts,dump,1000000,3.087295,3.755861,63.5491,1.5736,389496209 87 | pickle,dicts,load,1,5e-06,4.5e-06,27.7778,3.6,532 88 | pickle,dicts,load,1000,0.003193,0.002261,32.5451,3.0727,380942 89 | pickle,dicts,load,10000,0.127906,0.071867,139.6933,0.7159,3852412 90 | pickle,dicts,load,100000,0.342424,0.3059315,31.2621,3.1988,38874514 91 | pickle,dicts,load,1000000,4.424427,3.755861,39.6884,2.5196,389496209 92 | pickle,tuples,dump,1,3e-06,3e-06,30.0,3.3333,414 93 | pickle,tuples,dump,1000,0.00159,0.0022400000000000002,42.3097,2.3635,358974 94 | pickle,tuples,dump,10000,0.01462,0.0645785,47.1765,2.1197,3632952 95 | pickle,tuples,dump,100000,0.288601,0.35113099999999997,88.2181,1.1336,36676750 96 | pickle,tuples,dump,1000000,2.9905,3.7241715,85.1668,1.1742,367503881 97 | pickle,tuples,load,1,3e-06,3e-06,21.4286,4.6667,414 98 | pickle,tuples,load,1000,0.00289,0.0022400000000000002,29.1772,3.4273,358974 99 | pickle,tuples,load,10000,0.114537,0.0645785,150.6313,0.6639,3632952 100 | pickle,tuples,load,100000,0.413661,0.35113099999999997,38.7688,2.5794,36676750 101 | pickle,tuples,load,1000000,4.457843,3.7241715,43.4386,2.3021,367503881 102 | protobuf,tuples,dump,1,0.000173,0.0001045,1730.0,0.0578,360 103 | protobuf,tuples,dump,1000,0.058067,0.046507,1545.157,0.0647,291796 104 | protobuf,tuples,dump,10000,0.516924,0.48309900000000006,1668.0348,0.06,2954329 105 | protobuf,tuples,dump,100000,5.252045,4.807641,1605.4181,0.0623,29875574 106 | protobuf,tuples,dump,1000000,52.989597,48.664047,1509.0964,0.0663,299458025 107 | protobuf,tuples,load,1,3.6e-05,0.0001045,257.1429,0.3889,360 108 | protobuf,tuples,load,1000,0.034947,0.046507,352.8218,0.2834,291796 109 | protobuf,tuples,load,10000,0.449274,0.48309900000000006,590.8546,0.1692,2954329 110 | protobuf,tuples,load,100000,4.363237,4.807641,408.928,0.2445,29875574 111 | protobuf,tuples,load,1000000,44.338497,48.664047,432.0485,0.2315,299458025 112 | ujson,dicts,dump,1,6e-06,6e-06,35.2941,2.8333,915 113 | ujson,dicts,dump,1000,0.004209,0.0047195,111.8225,0.8943,739198 114 | ujson,dicts,dump,10000,0.023647,0.033566,56.4435,1.7717,7492914 115 | ujson,dicts,dump,100000,0.268397,0.4154215,58.3596,1.7135,75790227 116 | ujson,dicts,dump,1000000,2.698661,4.7757835,55.5495,1.8002,759753782 117 | ujson,dicts,load,1,6e-06,6e-06,33.3333,3.0,915 118 | ujson,dicts,load,1000,0.00523,0.0047195,53.3075,1.8759,739198 119 | ujson,dicts,load,10000,0.043485,0.033566,47.4924,2.1056,7492914 120 | ujson,dicts,load,100000,0.562446,0.4154215,51.3494,1.9474,75790227 121 | ujson,dicts,load,1000000,6.852906,4.7757835,61.4725,1.6267,759753782 122 | ujson,tuples,dump,1,4e-06,4e-06,40.0,2.5,807 123 | ujson,tuples,dump,1000,0.002194,0.0029515,58.3821,1.7129,631920 124 | ujson,tuples,dump,10000,0.020289,0.026259,65.4695,1.5274,6416049 125 | ujson,tuples,dump,100000,0.231685,0.38647000000000004,70.8203,1.412,65001418 126 | ujson,tuples,dump,1000000,2.312926,4.0676015,65.8701,1.5181,651790794 127 | ujson,tuples,load,1,4e-06,4e-06,28.5714,3.5,807 128 | ujson,tuples,load,1000,0.003709,0.0029515,37.4457,2.6705,631920 129 | ujson,tuples,load,10000,0.032229,0.026259,42.3854,2.3593,6416049 130 | ujson,tuples,load,100000,0.541255,0.38647000000000004,50.7271,1.9713,65001418 131 | ujson,tuples,load,1000000,5.822277,4.0676015,56.7341,1.7626,651790794 132 | -------------------------------------------------------------------------------- /results/detailed-results.json: -------------------------------------------------------------------------------- 1 | { 2 | "json_dicts_dump_1": { 3 | "fn": "dump", 4 | "avg_serde": 1.75e-05, 5 | "serialized_size": 934, 6 | "err": "", 7 | "name": "json", 8 | "dtype": "dicts", 9 | "items": 1, 10 | "avg": 1.7e-05, 11 | "min": 8e-06, 12 | "max": 8.2e-05, 13 | "stdev": 2.2e-05, 14 | "timings": [ 15 | 8e-05, 16 | 2e-05, 17 | 1e-05, 18 | 1e-05, 19 | 1e-05, 20 | 1e-05, 21 | 1e-05, 22 | 1e-05, 23 | 1e-05, 24 | 1e-05 25 | ], 26 | "baseline-speedup": 1.0, 27 | "baseline-ratio": 100.0 28 | }, 29 | "json_dicts_load_1": { 30 | "fn": "load", 31 | "avg_serde": 1.75e-05, 32 | "serialized_size": 934, 33 | "err": "", 34 | "name": "json", 35 | "dtype": "dicts", 36 | "items": 1, 37 | "avg": 1.8e-05, 38 | "min": 1.3e-05, 39 | "max": 5.1e-05, 40 | "stdev": 1.1e-05, 41 | "timings": [ 42 | 5e-05, 43 | 2e-05, 44 | 2e-05, 45 | 2e-05, 46 | 1e-05, 47 | 1e-05, 48 | 1e-05, 49 | 1e-05, 50 | 1e-05, 51 | 1e-05 52 | ], 53 | "baseline-speedup": 1.0, 54 | "baseline-ratio": 100.0 55 | }, 56 | "pickle_dicts_dump_1": { 57 | "fn": "dump", 58 | "avg_serde": 4.5e-06, 59 | "serialized_size": 532, 60 | "err": "", 61 | "name": "pickle", 62 | "dtype": "dicts", 63 | "items": 1, 64 | "avg": 4e-06, 65 | "min": 2e-06, 66 | "max": 1.6e-05, 67 | "stdev": 4e-06, 68 | "timings": [ 69 | 2e-05, 70 | 0.0, 71 | 0.0, 72 | 0.0, 73 | 0.0, 74 | 0.0, 75 | 0.0, 76 | 0.0, 77 | 0.0, 78 | 0.0 79 | ], 80 | "baseline-speedup": 4.25, 81 | "baseline-ratio": 23.5294 82 | }, 83 | "pickle_dicts_load_1": { 84 | "fn": "load", 85 | "avg_serde": 4.5e-06, 86 | "serialized_size": 532, 87 | "err": "", 88 | "name": "pickle", 89 | "dtype": "dicts", 90 | "items": 1, 91 | "avg": 5e-06, 92 | "min": 3e-06, 93 | "max": 1.6e-05, 94 | "stdev": 4e-06, 95 | "timings": [ 96 | 2e-05, 97 | 1e-05, 98 | 0.0, 99 | 0.0, 100 | 0.0, 101 | 0.0, 102 | 0.0, 103 | 0.0, 104 | 0.0, 105 | 0.0 106 | ], 107 | "baseline-speedup": 3.6, 108 | "baseline-ratio": 27.7778 109 | }, 110 | "bson_dicts_dump_1": { 111 | "fn": "dump", 112 | "avg_serde": 1.2499999999999999e-05, 113 | "serialized_size": 498, 114 | "err": "", 115 | "name": "bson", 116 | "dtype": "dicts", 117 | "items": 1, 118 | "avg": 1.7e-05, 119 | "min": 1.1e-05, 120 | "max": 5.8e-05, 121 | "stdev": 1.4e-05, 122 | "timings": [ 123 | 6e-05, 124 | 2e-05, 125 | 1e-05, 126 | 1e-05, 127 | 1e-05, 128 | 1e-05, 129 | 1e-05, 130 | 1e-05, 131 | 1e-05, 132 | 1e-05 133 | ], 134 | "baseline-speedup": 1.0, 135 | "baseline-ratio": 100.0 136 | }, 137 | "bson_dicts_load_1": { 138 | "fn": "load", 139 | "avg_serde": 1.2499999999999999e-05, 140 | "serialized_size": 498, 141 | "err": "", 142 | "name": "bson", 143 | "dtype": "dicts", 144 | "items": 1, 145 | "avg": 8e-06, 146 | "min": 5e-06, 147 | "max": 2e-05, 148 | "stdev": 4e-06, 149 | "timings": [ 150 | 2e-05, 151 | 1e-05, 152 | 1e-05, 153 | 1e-05, 154 | 1e-05, 155 | 1e-05, 156 | 1e-05, 157 | 1e-05, 158 | 1e-05, 159 | 1e-05 160 | ], 161 | "baseline-speedup": 2.25, 162 | "baseline-ratio": 44.4444 163 | }, 164 | "ujson_dicts_dump_1": { 165 | "fn": "dump", 166 | "avg_serde": 6e-06, 167 | "serialized_size": 915, 168 | "err": "", 169 | "name": "ujson", 170 | "dtype": "dicts", 171 | "items": 1, 172 | "avg": 6e-06, 173 | "min": 4e-06, 174 | "max": 1.4e-05, 175 | "stdev": 3e-06, 176 | "timings": [ 177 | 1e-05, 178 | 0.0, 179 | 0.0, 180 | 0.0, 181 | 1e-05, 182 | 1e-05, 183 | 1e-05, 184 | 1e-05, 185 | 0.0, 186 | 0.0 187 | ], 188 | "baseline-speedup": 2.8333, 189 | "baseline-ratio": 35.2941 190 | }, 191 | "ujson_dicts_load_1": { 192 | "fn": "load", 193 | "avg_serde": 6e-06, 194 | "serialized_size": 915, 195 | "err": "", 196 | "name": "ujson", 197 | "dtype": "dicts", 198 | "items": 1, 199 | "avg": 6e-06, 200 | "min": 4e-06, 201 | "max": 1.9e-05, 202 | "stdev": 5e-06, 203 | "timings": [ 204 | 2e-05, 205 | 1e-05, 206 | 0.0, 207 | 0.0, 208 | 0.0, 209 | 0.0, 210 | 0.0, 211 | 0.0, 212 | 0.0, 213 | 0.0 214 | ], 215 | "baseline-speedup": 3.0, 216 | "baseline-ratio": 33.3333 217 | }, 218 | "cbor_dicts_dump_1": { 219 | "fn": "dump", 220 | "avg_serde": 4e-06, 221 | "serialized_size": 435, 222 | "err": "", 223 | "name": "cbor", 224 | "dtype": "dicts", 225 | "items": 1, 226 | "avg": 4e-06, 227 | "min": 2e-06, 228 | "max": 9e-06, 229 | "stdev": 2e-06, 230 | "timings": [ 231 | 1e-05, 232 | 0.0, 233 | 0.0, 234 | 0.0, 235 | 0.0, 236 | 0.0, 237 | 0.0, 238 | 0.0, 239 | 0.0, 240 | 0.0 241 | ], 242 | "baseline-speedup": 4.25, 243 | "baseline-ratio": 23.5294 244 | }, 245 | "cbor_dicts_load_1": { 246 | "fn": "load", 247 | "avg_serde": 4e-06, 248 | "serialized_size": 435, 249 | "err": "", 250 | "name": "cbor", 251 | "dtype": "dicts", 252 | "items": 1, 253 | "avg": 4e-06, 254 | "min": 3e-06, 255 | "max": 7e-06, 256 | "stdev": 1e-06, 257 | "timings": [ 258 | 1e-05, 259 | 0.0, 260 | 0.0, 261 | 0.0, 262 | 0.0, 263 | 0.0, 264 | 0.0, 265 | 0.0, 266 | 0.0, 267 | 0.0 268 | ], 269 | "baseline-speedup": 4.5, 270 | "baseline-ratio": 22.2222 271 | }, 272 | "msgpack_dicts_dump_1": { 273 | "fn": "dump", 274 | "avg_serde": 4e-06, 275 | "serialized_size": 437, 276 | "err": "", 277 | "name": "msgpack", 278 | "dtype": "dicts", 279 | "items": 1, 280 | "avg": 4e-06, 281 | "min": 2e-06, 282 | "max": 1.5e-05, 283 | "stdev": 4e-06, 284 | "timings": [ 285 | 1e-05, 286 | 0.0, 287 | 0.0, 288 | 0.0, 289 | 0.0, 290 | 0.0, 291 | 0.0, 292 | 0.0, 293 | 0.0, 294 | 0.0 295 | ], 296 | "baseline-speedup": 4.25, 297 | "baseline-ratio": 23.5294 298 | }, 299 | "msgpack_dicts_load_1": { 300 | "fn": "load", 301 | "avg_serde": 4e-06, 302 | "serialized_size": 437, 303 | "err": "", 304 | "name": "msgpack", 305 | "dtype": "dicts", 306 | "items": 1, 307 | "avg": 4e-06, 308 | "min": 3e-06, 309 | "max": 1.3e-05, 310 | "stdev": 3e-06, 311 | "timings": [ 312 | 1e-05, 313 | 1e-05, 314 | 0.0, 315 | 0.0, 316 | 0.0, 317 | 0.0, 318 | 0.0, 319 | 0.0, 320 | 0.0, 321 | 0.0 322 | ], 323 | "baseline-speedup": 4.5, 324 | "baseline-ratio": 22.2222 325 | }, 326 | "json_tuples_dump_1": { 327 | "fn": "dump", 328 | "avg_serde": 1.2e-05, 329 | "serialized_size": 815, 330 | "err": "", 331 | "name": "json", 332 | "dtype": "tuples", 333 | "items": 1, 334 | "avg": 1e-05, 335 | "min": 7e-06, 336 | "max": 2.3e-05, 337 | "stdev": 5e-06, 338 | "timings": [ 339 | 2e-05, 340 | 2e-05, 341 | 1e-05, 342 | 1e-05, 343 | 1e-05, 344 | 1e-05, 345 | 1e-05, 346 | 1e-05, 347 | 1e-05, 348 | 1e-05 349 | ], 350 | "baseline-speedup": 1.0, 351 | "baseline-ratio": 100.0 352 | }, 353 | "json_tuples_load_1": { 354 | "fn": "load", 355 | "avg_serde": 1.2e-05, 356 | "serialized_size": 815, 357 | "err": "", 358 | "name": "json", 359 | "dtype": "tuples", 360 | "items": 1, 361 | "avg": 1.4e-05, 362 | "min": 1.1e-05, 363 | "max": 2.8e-05, 364 | "stdev": 5e-06, 365 | "timings": [ 366 | 3e-05, 367 | 2e-05, 368 | 1e-05, 369 | 1e-05, 370 | 1e-05, 371 | 1e-05, 372 | 1e-05, 373 | 1e-05, 374 | 1e-05, 375 | 1e-05 376 | ], 377 | "baseline-speedup": 1.0, 378 | "baseline-ratio": 100.0 379 | }, 380 | "pickle_tuples_dump_1": { 381 | "fn": "dump", 382 | "avg_serde": 3e-06, 383 | "serialized_size": 414, 384 | "err": "", 385 | "name": "pickle", 386 | "dtype": "tuples", 387 | "items": 1, 388 | "avg": 3e-06, 389 | "min": 2e-06, 390 | "max": 7e-06, 391 | "stdev": 2e-06, 392 | "timings": [ 393 | 1e-05, 394 | 0.0, 395 | 0.0, 396 | 0.0, 397 | 0.0, 398 | 0.0, 399 | 0.0, 400 | 0.0, 401 | 0.0, 402 | 0.0 403 | ], 404 | "baseline-speedup": 3.3333, 405 | "baseline-ratio": 30.0 406 | }, 407 | "pickle_tuples_load_1": { 408 | "fn": "load", 409 | "avg_serde": 3e-06, 410 | "serialized_size": 414, 411 | "err": "", 412 | "name": "pickle", 413 | "dtype": "tuples", 414 | "items": 1, 415 | "avg": 3e-06, 416 | "min": 2e-06, 417 | "max": 7e-06, 418 | "stdev": 1e-06, 419 | "timings": [ 420 | 1e-05, 421 | 0.0, 422 | 0.0, 423 | 0.0, 424 | 0.0, 425 | 0.0, 426 | 0.0, 427 | 0.0, 428 | 0.0, 429 | 0.0 430 | ], 431 | "baseline-speedup": 4.6667, 432 | "baseline-ratio": 21.4286 433 | }, 434 | "ujson_tuples_dump_1": { 435 | "fn": "dump", 436 | "avg_serde": 4e-06, 437 | "serialized_size": 807, 438 | "err": "", 439 | "name": "ujson", 440 | "dtype": "tuples", 441 | "items": 1, 442 | "avg": 4e-06, 443 | "min": 3e-06, 444 | "max": 8e-06, 445 | "stdev": 2e-06, 446 | "timings": [ 447 | 1e-05, 448 | 1e-05, 449 | 0.0, 450 | 0.0, 451 | 0.0, 452 | 0.0, 453 | 0.0, 454 | 0.0, 455 | 0.0, 456 | 0.0 457 | ], 458 | "baseline-speedup": 2.5, 459 | "baseline-ratio": 40.0 460 | }, 461 | "ujson_tuples_load_1": { 462 | "fn": "load", 463 | "avg_serde": 4e-06, 464 | "serialized_size": 807, 465 | "err": "", 466 | "name": "ujson", 467 | "dtype": "tuples", 468 | "items": 1, 469 | "avg": 4e-06, 470 | "min": 3e-06, 471 | "max": 8e-06, 472 | "stdev": 2e-06, 473 | "timings": [ 474 | 1e-05, 475 | 1e-05, 476 | 0.0, 477 | 0.0, 478 | 0.0, 479 | 0.0, 480 | 0.0, 481 | 0.0, 482 | 0.0, 483 | 0.0 484 | ], 485 | "baseline-speedup": 3.5, 486 | "baseline-ratio": 28.5714 487 | }, 488 | "parquet_tuples_dump_1": { 489 | "fn": "dump", 490 | "avg_serde": 0.001433, 491 | "serialized_size": 3829, 492 | "err": "", 493 | "name": "parquet", 494 | "dtype": "tuples", 495 | "items": 1, 496 | "avg": 0.002292, 497 | "min": 0.001904, 498 | "max": 0.003558, 499 | "stdev": 0.000467, 500 | "timings": [ 501 | 0.00356, 502 | 0.00253, 503 | 0.00239, 504 | 0.00217, 505 | 0.00209, 506 | 0.002, 507 | 0.00196, 508 | 0.00196, 509 | 0.0019, 510 | 0.00236 511 | ], 512 | "baseline-speedup": 0.0044, 513 | "baseline-ratio": 22920.0 514 | }, 515 | "parquet_tuples_load_1": { 516 | "fn": "load", 517 | "avg_serde": 0.001433, 518 | "serialized_size": 3829, 519 | "err": "", 520 | "name": "parquet", 521 | "dtype": "tuples", 522 | "items": 1, 523 | "avg": 0.000574, 524 | "min": 0.000406, 525 | "max": 0.001449, 526 | "stdev": 0.000293, 527 | "timings": [ 528 | 0.00145, 529 | 0.00043, 530 | 0.00041, 531 | 0.00052, 532 | 0.00049, 533 | 0.00048, 534 | 0.00049, 535 | 0.00051, 536 | 0.00048, 537 | 0.00049 538 | ], 539 | "baseline-speedup": 0.0244, 540 | "baseline-ratio": 4100.0 541 | }, 542 | "protobuf_tuples_dump_1": { 543 | "fn": "dump", 544 | "avg_serde": 0.0001045, 545 | "serialized_size": 360, 546 | "err": "", 547 | "name": "protobuf", 548 | "dtype": "tuples", 549 | "items": 1, 550 | "avg": 0.000173, 551 | "min": 5.1e-05, 552 | "max": 0.001226, 553 | "stdev": 0.000351, 554 | "timings": [ 555 | 0.00123, 556 | 7e-05, 557 | 6e-05, 558 | 5e-05, 559 | 5e-05, 560 | 5e-05, 561 | 6e-05, 562 | 5e-05, 563 | 5e-05, 564 | 5e-05 565 | ], 566 | "baseline-speedup": 0.0578, 567 | "baseline-ratio": 1730.0 568 | }, 569 | "protobuf_tuples_load_1": { 570 | "fn": "load", 571 | "avg_serde": 0.0001045, 572 | "serialized_size": 360, 573 | "err": "", 574 | "name": "protobuf", 575 | "dtype": "tuples", 576 | "items": 1, 577 | "avg": 3.6e-05, 578 | "min": 3.1e-05, 579 | "max": 6.7e-05, 580 | "stdev": 1e-05, 581 | "timings": [ 582 | 7e-05, 583 | 4e-05, 584 | 3e-05, 585 | 3e-05, 586 | 3e-05, 587 | 3e-05, 588 | 3e-05, 589 | 3e-05, 590 | 3e-05, 591 | 3e-05 592 | ], 593 | "baseline-speedup": 0.3889, 594 | "baseline-ratio": 257.1429 595 | }, 596 | "cbor_tuples_dump_1": { 597 | "fn": "dump", 598 | "avg_serde": 2e-06, 599 | "serialized_size": 349, 600 | "err": "", 601 | "name": "cbor", 602 | "dtype": "tuples", 603 | "items": 1, 604 | "avg": 2e-06, 605 | "min": 1e-06, 606 | "max": 4e-06, 607 | "stdev": 1e-06, 608 | "timings": [ 609 | 0.0, 610 | 0.0, 611 | 0.0, 612 | 0.0, 613 | 0.0, 614 | 0.0, 615 | 0.0, 616 | 0.0, 617 | 0.0, 618 | 0.0 619 | ], 620 | "baseline-speedup": 5.0, 621 | "baseline-ratio": 20.0 622 | }, 623 | "cbor_tuples_load_1": { 624 | "fn": "load", 625 | "avg_serde": 2e-06, 626 | "serialized_size": 349, 627 | "err": "", 628 | "name": "cbor", 629 | "dtype": "tuples", 630 | "items": 1, 631 | "avg": 2e-06, 632 | "min": 1e-06, 633 | "max": 4e-06, 634 | "stdev": 1e-06, 635 | "timings": [ 636 | 0.0, 637 | 0.0, 638 | 0.0, 639 | 0.0, 640 | 0.0, 641 | 0.0, 642 | 0.0, 643 | 0.0, 644 | 0.0, 645 | 0.0 646 | ], 647 | "baseline-speedup": 7.0, 648 | "baseline-ratio": 14.2857 649 | }, 650 | "msgpack_tuples_dump_1": { 651 | "fn": "dump", 652 | "avg_serde": 3e-06, 653 | "serialized_size": 351, 654 | "err": "", 655 | "name": "msgpack", 656 | "dtype": "tuples", 657 | "items": 1, 658 | "avg": 4e-06, 659 | "min": 1e-06, 660 | "max": 1.9e-05, 661 | "stdev": 5e-06, 662 | "timings": [ 663 | 1e-05, 664 | 2e-05, 665 | 0.0, 666 | 0.0, 667 | 0.0, 668 | 0.0, 669 | 0.0, 670 | 0.0, 671 | 0.0, 672 | 0.0 673 | ], 674 | "baseline-speedup": 2.5, 675 | "baseline-ratio": 40.0 676 | }, 677 | "msgpack_tuples_load_1": { 678 | "fn": "load", 679 | "avg_serde": 3e-06, 680 | "serialized_size": 351, 681 | "err": "", 682 | "name": "msgpack", 683 | "dtype": "tuples", 684 | "items": 1, 685 | "avg": 2e-06, 686 | "min": 1e-06, 687 | "max": 7e-06, 688 | "stdev": 2e-06, 689 | "timings": [ 690 | 1e-05, 691 | 0.0, 692 | 0.0, 693 | 0.0, 694 | 0.0, 695 | 0.0, 696 | 0.0, 697 | 0.0, 698 | 0.0, 699 | 0.0 700 | ], 701 | "baseline-speedup": 7.0, 702 | "baseline-ratio": 14.2857 703 | }, 704 | "json_dicts_dump_1000": { 705 | "fn": "dump", 706 | "avg_serde": 0.0067875, 707 | "serialized_size": 761200, 708 | "err": "", 709 | "name": "json", 710 | "dtype": "dicts", 711 | "items": 1000, 712 | "avg": 0.003764, 713 | "min": 0.003702, 714 | "max": 0.003846, 715 | "stdev": 4.3e-05, 716 | "timings": [ 717 | 0.0038, 718 | 0.0037, 719 | 0.00371, 720 | 0.00376, 721 | 0.00378, 722 | 0.00385, 723 | 0.00377, 724 | 0.00371, 725 | 0.00377, 726 | 0.00379 727 | ], 728 | "baseline-speedup": 1.0, 729 | "baseline-ratio": 100.0 730 | }, 731 | "json_dicts_load_1000": { 732 | "fn": "load", 733 | "avg_serde": 0.0067875, 734 | "serialized_size": 761200, 735 | "err": "", 736 | "name": "json", 737 | "dtype": "dicts", 738 | "items": 1000, 739 | "avg": 0.009811, 740 | "min": 0.00814, 741 | "max": 0.013038, 742 | "stdev": 0.00132, 743 | "timings": [ 744 | 0.00814, 745 | 0.01304, 746 | 0.01139, 747 | 0.00944, 748 | 0.00906, 749 | 0.00957, 750 | 0.00904, 751 | 0.00935, 752 | 0.00956, 753 | 0.00952 754 | ], 755 | "baseline-speedup": 1.0, 756 | "baseline-ratio": 100.0 757 | }, 758 | "pickle_dicts_dump_1000": { 759 | "fn": "dump", 760 | "avg_serde": 0.002261, 761 | "serialized_size": 380942, 762 | "err": "", 763 | "name": "pickle", 764 | "dtype": "dicts", 765 | "items": 1000, 766 | "avg": 0.001329, 767 | "min": 0.001236, 768 | "max": 0.001798, 769 | "stdev": 0.000158, 770 | "timings": [ 771 | 0.0018, 772 | 0.00124, 773 | 0.00128, 774 | 0.00129, 775 | 0.00128, 776 | 0.00126, 777 | 0.00127, 778 | 0.00127, 779 | 0.00128, 780 | 0.00133 781 | ], 782 | "baseline-speedup": 2.8322, 783 | "baseline-ratio": 35.3082 784 | }, 785 | "pickle_dicts_load_1000": { 786 | "fn": "load", 787 | "avg_serde": 0.002261, 788 | "serialized_size": 380942, 789 | "err": "", 790 | "name": "pickle", 791 | "dtype": "dicts", 792 | "items": 1000, 793 | "avg": 0.003193, 794 | "min": 0.002135, 795 | "max": 0.004162, 796 | "stdev": 0.00056, 797 | "timings": [ 798 | 0.00213, 799 | 0.00266, 800 | 0.00316, 801 | 0.00316, 802 | 0.00285, 803 | 0.00369, 804 | 0.00358, 805 | 0.00416, 806 | 0.00291, 807 | 0.00363 808 | ], 809 | "baseline-speedup": 3.0727, 810 | "baseline-ratio": 32.5451 811 | }, 812 | "bson_dicts_dump_1000": { 813 | "fn": "dump", 814 | "avg_serde": 0.009125, 815 | "serialized_size": 438651, 816 | "err": "", 817 | "name": "bson", 818 | "dtype": "dicts", 819 | "items": 1000, 820 | "avg": 0.013215, 821 | "min": 0.009311, 822 | "max": 0.016832, 823 | "stdev": 0.00234, 824 | "timings": [ 825 | 0.01337, 826 | 0.01504, 827 | 0.01576, 828 | 0.01461, 829 | 0.01039, 830 | 0.01329, 831 | 0.01683, 832 | 0.01064, 833 | 0.00931, 834 | 0.01291 835 | ], 836 | "baseline-speedup": 0.2848, 837 | "baseline-ratio": 351.0893 838 | }, 839 | "bson_dicts_load_1000": { 840 | "fn": "load", 841 | "avg_serde": 0.009125, 842 | "serialized_size": 438651, 843 | "err": "", 844 | "name": "bson", 845 | "dtype": "dicts", 846 | "items": 1000, 847 | "avg": 0.005035, 848 | "min": 0.003511, 849 | "max": 0.006501, 850 | "stdev": 0.001103, 851 | "timings": [ 852 | 0.00477, 853 | 0.00644, 854 | 0.00353, 855 | 0.00389, 856 | 0.00351, 857 | 0.00486, 858 | 0.00484, 859 | 0.00625, 860 | 0.00576, 861 | 0.0065 862 | ], 863 | "baseline-speedup": 1.9486, 864 | "baseline-ratio": 51.3199 865 | }, 866 | "ujson_dicts_dump_1000": { 867 | "fn": "dump", 868 | "avg_serde": 0.0047195, 869 | "serialized_size": 739198, 870 | "err": "", 871 | "name": "ujson", 872 | "dtype": "dicts", 873 | "items": 1000, 874 | "avg": 0.004209, 875 | "min": 0.004143, 876 | "max": 0.004314, 877 | "stdev": 4.8e-05, 878 | "timings": [ 879 | 0.0042, 880 | 0.00423, 881 | 0.00416, 882 | 0.00424, 883 | 0.00416, 884 | 0.00431, 885 | 0.00419, 886 | 0.00424, 887 | 0.00414, 888 | 0.00421 889 | ], 890 | "baseline-speedup": 0.8943, 891 | "baseline-ratio": 111.8225 892 | }, 893 | "ujson_dicts_load_1000": { 894 | "fn": "load", 895 | "avg_serde": 0.0047195, 896 | "serialized_size": 739198, 897 | "err": "", 898 | "name": "ujson", 899 | "dtype": "dicts", 900 | "items": 1000, 901 | "avg": 0.00523, 902 | "min": 0.004302, 903 | "max": 0.007349, 904 | "stdev": 0.001041, 905 | "timings": [ 906 | 0.00591, 907 | 0.00735, 908 | 0.0068, 909 | 0.0053, 910 | 0.00435, 911 | 0.0046, 912 | 0.00441, 913 | 0.00467, 914 | 0.0043, 915 | 0.0046 916 | ], 917 | "baseline-speedup": 1.8759, 918 | "baseline-ratio": 53.3075 919 | }, 920 | "cbor_dicts_dump_1000": { 921 | "fn": "dump", 922 | "avg_serde": 0.00245, 923 | "serialized_size": 364209, 924 | "err": "", 925 | "name": "cbor", 926 | "dtype": "dicts", 927 | "items": 1000, 928 | "avg": 0.001811, 929 | "min": 0.001486, 930 | "max": 0.002508, 931 | "stdev": 0.000319, 932 | "timings": [ 933 | 0.00163, 934 | 0.00159, 935 | 0.00164, 936 | 0.00169, 937 | 0.00149, 938 | 0.002, 939 | 0.00251, 940 | 0.00154, 941 | 0.00178, 942 | 0.00225 943 | ], 944 | "baseline-speedup": 2.0784, 945 | "baseline-ratio": 48.1137 946 | }, 947 | "cbor_dicts_load_1000": { 948 | "fn": "load", 949 | "avg_serde": 0.00245, 950 | "serialized_size": 364209, 951 | "err": "", 952 | "name": "cbor", 953 | "dtype": "dicts", 954 | "items": 1000, 955 | "avg": 0.003089, 956 | "min": 0.002509, 957 | "max": 0.003319, 958 | "stdev": 0.000233, 959 | "timings": [ 960 | 0.00251, 961 | 0.00332, 962 | 0.00306, 963 | 0.00332, 964 | 0.00295, 965 | 0.00323, 966 | 0.00304, 967 | 0.00324, 968 | 0.00298, 969 | 0.00325 970 | ], 971 | "baseline-speedup": 3.1761, 972 | "baseline-ratio": 31.4851 973 | }, 974 | "msgpack_dicts_dump_1000": { 975 | "fn": "dump", 976 | "avg_serde": 0.0023150000000000002, 977 | "serialized_size": 365629, 978 | "err": "", 979 | "name": "msgpack", 980 | "dtype": "dicts", 981 | "items": 1000, 982 | "avg": 0.001016, 983 | "min": 0.000946, 984 | "max": 0.001168, 985 | "stdev": 6.4e-05, 986 | "timings": [ 987 | 0.00104, 988 | 0.00101, 989 | 0.00107, 990 | 0.00117, 991 | 0.00104, 992 | 0.00099, 993 | 0.00099, 994 | 0.00096, 995 | 0.00095, 996 | 0.00095 997 | ], 998 | "baseline-speedup": 3.7047, 999 | "baseline-ratio": 26.9926 1000 | }, 1001 | "msgpack_dicts_load_1000": { 1002 | "fn": "load", 1003 | "avg_serde": 0.0023150000000000002, 1004 | "serialized_size": 365629, 1005 | "err": "", 1006 | "name": "msgpack", 1007 | "dtype": "dicts", 1008 | "items": 1000, 1009 | "avg": 0.003614, 1010 | "min": 0.002383, 1011 | "max": 0.005253, 1012 | "stdev": 0.000868, 1013 | "timings": [ 1014 | 0.00238, 1015 | 0.00309, 1016 | 0.0033, 1017 | 0.00288, 1018 | 0.0034, 1019 | 0.00312, 1020 | 0.00478, 1021 | 0.00345, 1022 | 0.00525, 1023 | 0.00448 1024 | ], 1025 | "baseline-speedup": 2.7147, 1026 | "baseline-ratio": 36.8362 1027 | }, 1028 | "json_tuples_dump_1000": { 1029 | "fn": "dump", 1030 | "avg_serde": 0.006831500000000001, 1031 | "serialized_size": 642998, 1032 | "err": "", 1033 | "name": "json", 1034 | "dtype": "tuples", 1035 | "items": 1000, 1036 | "avg": 0.003758, 1037 | "min": 0.003161, 1038 | "max": 0.004895, 1039 | "stdev": 0.000609, 1040 | "timings": [ 1041 | 0.00477, 1042 | 0.0049, 1043 | 0.00418, 1044 | 0.00369, 1045 | 0.00369, 1046 | 0.00316, 1047 | 0.00323, 1048 | 0.00342, 1049 | 0.00331, 1050 | 0.00324 1051 | ], 1052 | "baseline-speedup": 1.0, 1053 | "baseline-ratio": 100.0 1054 | }, 1055 | "json_tuples_load_1000": { 1056 | "fn": "load", 1057 | "avg_serde": 0.006831500000000001, 1058 | "serialized_size": 642998, 1059 | "err": "", 1060 | "name": "json", 1061 | "dtype": "tuples", 1062 | "items": 1000, 1063 | "avg": 0.009905, 1064 | "min": 0.007831, 1065 | "max": 0.012858, 1066 | "stdev": 0.00178, 1067 | "timings": [ 1068 | 0.00786, 1069 | 0.00783, 1070 | 0.00846, 1071 | 0.0079, 1072 | 0.01017, 1073 | 0.01202, 1074 | 0.01286, 1075 | 0.00972, 1076 | 0.0105, 1077 | 0.01175 1078 | ], 1079 | "baseline-speedup": 1.0, 1080 | "baseline-ratio": 100.0 1081 | }, 1082 | "pickle_tuples_dump_1000": { 1083 | "fn": "dump", 1084 | "avg_serde": 0.0022400000000000002, 1085 | "serialized_size": 358974, 1086 | "err": "", 1087 | "name": "pickle", 1088 | "dtype": "tuples", 1089 | "items": 1000, 1090 | "avg": 0.00159, 1091 | "min": 0.001485, 1092 | "max": 0.001749, 1093 | "stdev": 7.1e-05, 1094 | "timings": [ 1095 | 0.00175, 1096 | 0.00163, 1097 | 0.00162, 1098 | 0.00157, 1099 | 0.00161, 1100 | 0.00162, 1101 | 0.00158, 1102 | 0.00151, 1103 | 0.00153, 1104 | 0.00148 1105 | ], 1106 | "baseline-speedup": 2.3635, 1107 | "baseline-ratio": 42.3097 1108 | }, 1109 | "pickle_tuples_load_1000": { 1110 | "fn": "load", 1111 | "avg_serde": 0.0022400000000000002, 1112 | "serialized_size": 358974, 1113 | "err": "", 1114 | "name": "pickle", 1115 | "dtype": "tuples", 1116 | "items": 1000, 1117 | "avg": 0.00289, 1118 | "min": 0.002576, 1119 | "max": 0.003094, 1120 | "stdev": 0.000161, 1121 | "timings": [ 1122 | 0.00258, 1123 | 0.00301, 1124 | 0.003, 1125 | 0.00288, 1126 | 0.00309, 1127 | 0.00269, 1128 | 0.00308, 1129 | 0.00278, 1130 | 0.00292, 1131 | 0.00286 1132 | ], 1133 | "baseline-speedup": 3.4273, 1134 | "baseline-ratio": 29.1772 1135 | }, 1136 | "ujson_tuples_dump_1000": { 1137 | "fn": "dump", 1138 | "avg_serde": 0.0029515, 1139 | "serialized_size": 631920, 1140 | "err": "", 1141 | "name": "ujson", 1142 | "dtype": "tuples", 1143 | "items": 1000, 1144 | "avg": 0.002194, 1145 | "min": 0.001928, 1146 | "max": 0.003272, 1147 | "stdev": 0.000452, 1148 | "timings": [ 1149 | 0.00327, 1150 | 0.00289, 1151 | 0.00201, 1152 | 0.00194, 1153 | 0.00193, 1154 | 0.002, 1155 | 0.00194, 1156 | 0.00201, 1157 | 0.00195, 1158 | 0.00201 1159 | ], 1160 | "baseline-speedup": 1.7129, 1161 | "baseline-ratio": 58.3821 1162 | }, 1163 | "ujson_tuples_load_1000": { 1164 | "fn": "load", 1165 | "avg_serde": 0.0029515, 1166 | "serialized_size": 631920, 1167 | "err": "", 1168 | "name": "ujson", 1169 | "dtype": "tuples", 1170 | "items": 1000, 1171 | "avg": 0.003709, 1172 | "min": 0.002891, 1173 | "max": 0.004925, 1174 | "stdev": 0.000576, 1175 | "timings": [ 1176 | 0.00289, 1177 | 0.00378, 1178 | 0.00445, 1179 | 0.00492, 1180 | 0.00388, 1181 | 0.00358, 1182 | 0.0031, 1183 | 0.00355, 1184 | 0.00329, 1185 | 0.00366 1186 | ], 1187 | "baseline-speedup": 2.6705, 1188 | "baseline-ratio": 37.4457 1189 | }, 1190 | "parquet_tuples_dump_1000": { 1191 | "fn": "dump", 1192 | "avg_serde": 0.0056135000000000004, 1193 | "serialized_size": 300703, 1194 | "err": "", 1195 | "name": "parquet", 1196 | "dtype": "tuples", 1197 | "items": 1000, 1198 | "avg": 0.009261, 1199 | "min": 0.00712, 1200 | "max": 0.011007, 1201 | "stdev": 0.001286, 1202 | "timings": [ 1203 | 0.01101, 1204 | 0.01004, 1205 | 0.01047, 1206 | 0.0078, 1207 | 0.01007, 1208 | 0.00712, 1209 | 0.00977, 1210 | 0.00737, 1211 | 0.00968, 1212 | 0.00929 1213 | ], 1214 | "baseline-speedup": 0.4058, 1215 | "baseline-ratio": 246.4343 1216 | }, 1217 | "parquet_tuples_load_1000": { 1218 | "fn": "load", 1219 | "avg_serde": 0.0056135000000000004, 1220 | "serialized_size": 300703, 1221 | "err": "", 1222 | "name": "parquet", 1223 | "dtype": "tuples", 1224 | "items": 1000, 1225 | "avg": 0.001966, 1226 | "min": 0.001462, 1227 | "max": 0.003291, 1228 | "stdev": 0.000502, 1229 | "timings": [ 1230 | 0.00231, 1231 | 0.0019, 1232 | 0.00203, 1233 | 0.00329, 1234 | 0.00198, 1235 | 0.00155, 1236 | 0.00174, 1237 | 0.00178, 1238 | 0.00146, 1239 | 0.00161 1240 | ], 1241 | "baseline-speedup": 5.0381, 1242 | "baseline-ratio": 19.8486 1243 | }, 1244 | "protobuf_tuples_dump_1000": { 1245 | "fn": "dump", 1246 | "avg_serde": 0.046507, 1247 | "serialized_size": 291796, 1248 | "err": "", 1249 | "name": "protobuf", 1250 | "dtype": "tuples", 1251 | "items": 1000, 1252 | "avg": 0.058067, 1253 | "min": 0.052275, 1254 | "max": 0.074818, 1255 | "stdev": 0.007116, 1256 | "timings": [ 1257 | 0.06341, 1258 | 0.05475, 1259 | 0.05388, 1260 | 0.05313, 1261 | 0.05375, 1262 | 0.05227, 1263 | 0.05413, 1264 | 0.05448, 1265 | 0.07482, 1266 | 0.06605 1267 | ], 1268 | "baseline-speedup": 0.0647, 1269 | "baseline-ratio": 1545.157 1270 | }, 1271 | "protobuf_tuples_load_1000": { 1272 | "fn": "load", 1273 | "avg_serde": 0.046507, 1274 | "serialized_size": 291796, 1275 | "err": "", 1276 | "name": "protobuf", 1277 | "dtype": "tuples", 1278 | "items": 1000, 1279 | "avg": 0.034947, 1280 | "min": 0.034274, 1281 | "max": 0.037415, 1282 | "stdev": 0.000882, 1283 | "timings": [ 1284 | 0.03741, 1285 | 0.03438, 1286 | 0.03475, 1287 | 0.03513, 1288 | 0.03444, 1289 | 0.03429, 1290 | 0.03462, 1291 | 0.03517, 1292 | 0.035, 1293 | 0.03427 1294 | ], 1295 | "baseline-speedup": 0.2834, 1296 | "baseline-ratio": 352.8218 1297 | }, 1298 | "cbor_tuples_dump_1000": { 1299 | "fn": "dump", 1300 | "avg_serde": 0.00124, 1301 | "serialized_size": 278779, 1302 | "err": "", 1303 | "name": "cbor", 1304 | "dtype": "tuples", 1305 | "items": 1000, 1306 | "avg": 0.000803, 1307 | "min": 0.000762, 1308 | "max": 0.001097, 1309 | "stdev": 9.8e-05, 1310 | "timings": [ 1311 | 0.0011, 1312 | 0.00079, 1313 | 0.00077, 1314 | 0.00078, 1315 | 0.00077, 1316 | 0.00077, 1317 | 0.00077, 1318 | 0.00077, 1319 | 0.00077, 1320 | 0.00076 1321 | ], 1322 | "baseline-speedup": 4.68, 1323 | "baseline-ratio": 21.3677 1324 | }, 1325 | "cbor_tuples_load_1000": { 1326 | "fn": "load", 1327 | "avg_serde": 0.00124, 1328 | "serialized_size": 278779, 1329 | "err": "", 1330 | "name": "cbor", 1331 | "dtype": "tuples", 1332 | "items": 1000, 1333 | "avg": 0.001677, 1334 | "min": 0.001421, 1335 | "max": 0.001978, 1336 | "stdev": 0.000185, 1337 | "timings": [ 1338 | 0.00142, 1339 | 0.00198, 1340 | 0.00152, 1341 | 0.00193, 1342 | 0.00154, 1343 | 0.00175, 1344 | 0.00155, 1345 | 0.00182, 1346 | 0.00151, 1347 | 0.00176 1348 | ], 1349 | "baseline-speedup": 5.9064, 1350 | "baseline-ratio": 16.9308 1351 | }, 1352 | "msgpack_tuples_dump_1000": { 1353 | "fn": "dump", 1354 | "avg_serde": 0.001219, 1355 | "serialized_size": 280199, 1356 | "err": "", 1357 | "name": "msgpack", 1358 | "dtype": "tuples", 1359 | "items": 1000, 1360 | "avg": 0.000845, 1361 | "min": 0.000594, 1362 | "max": 0.001648, 1363 | "stdev": 0.000294, 1364 | "timings": [ 1365 | 0.00165, 1366 | 0.00096, 1367 | 0.00091, 1368 | 0.00081, 1369 | 0.00082, 1370 | 0.00071, 1371 | 0.0006, 1372 | 0.00059, 1373 | 0.00078, 1374 | 0.00061 1375 | ], 1376 | "baseline-speedup": 4.4473, 1377 | "baseline-ratio": 22.4854 1378 | }, 1379 | "msgpack_tuples_load_1000": { 1380 | "fn": "load", 1381 | "avg_serde": 0.001219, 1382 | "serialized_size": 280199, 1383 | "err": "", 1384 | "name": "msgpack", 1385 | "dtype": "tuples", 1386 | "items": 1000, 1387 | "avg": 0.001593, 1388 | "min": 0.001331, 1389 | "max": 0.001749, 1390 | "stdev": 0.00014, 1391 | "timings": [ 1392 | 0.00133, 1393 | 0.00174, 1394 | 0.00165, 1395 | 0.00175, 1396 | 0.00146, 1397 | 0.00169, 1398 | 0.00139, 1399 | 0.00158, 1400 | 0.00168, 1401 | 0.00167 1402 | ], 1403 | "baseline-speedup": 6.2178, 1404 | "baseline-ratio": 16.0828 1405 | }, 1406 | "json_dicts_dump_10000": { 1407 | "fn": "dump", 1408 | "avg_serde": 0.0667285, 1409 | "serialized_size": 7713196, 1410 | "err": "", 1411 | "name": "json", 1412 | "dtype": "dicts", 1413 | "items": 10000, 1414 | "avg": 0.041895, 1415 | "min": 0.039977, 1416 | "max": 0.045435, 1417 | "stdev": 0.001593, 1418 | "timings": [ 1419 | 0.04252, 1420 | 0.04054, 1421 | 0.04114, 1422 | 0.04181, 1423 | 0.04053, 1424 | 0.0423, 1425 | 0.04375, 1426 | 0.04095, 1427 | 0.03998, 1428 | 0.04543 1429 | ], 1430 | "baseline-speedup": 1.0, 1431 | "baseline-ratio": 100.0 1432 | }, 1433 | "json_dicts_load_10000": { 1434 | "fn": "load", 1435 | "avg_serde": 0.0667285, 1436 | "serialized_size": 7713196, 1437 | "err": "", 1438 | "name": "json", 1439 | "dtype": "dicts", 1440 | "items": 10000, 1441 | "avg": 0.091562, 1442 | "min": 0.086858, 1443 | "max": 0.093367, 1444 | "stdev": 0.001901, 1445 | "timings": [ 1446 | 0.08686, 1447 | 0.09281, 1448 | 0.09008, 1449 | 0.09322, 1450 | 0.09335, 1451 | 0.09223, 1452 | 0.09097, 1453 | 0.09105, 1454 | 0.09169, 1455 | 0.09337 1456 | ], 1457 | "baseline-speedup": 1.0, 1458 | "baseline-ratio": 100.0 1459 | }, 1460 | "pickle_dicts_dump_10000": { 1461 | "fn": "dump", 1462 | "avg_serde": 0.071867, 1463 | "serialized_size": 3852412, 1464 | "err": "", 1465 | "name": "pickle", 1466 | "dtype": "dicts", 1467 | "items": 10000, 1468 | "avg": 0.015828, 1469 | "min": 0.014924, 1470 | "max": 0.020504, 1471 | "stdev": 0.001603, 1472 | "timings": [ 1473 | 0.0205, 1474 | 0.01632, 1475 | 0.01539, 1476 | 0.01546, 1477 | 0.01501, 1478 | 0.01519, 1479 | 0.01492, 1480 | 0.01507, 1481 | 0.01513, 1482 | 0.01527 1483 | ], 1484 | "baseline-speedup": 2.6469, 1485 | "baseline-ratio": 37.7802 1486 | }, 1487 | "pickle_dicts_load_10000": { 1488 | "fn": "load", 1489 | "avg_serde": 0.071867, 1490 | "serialized_size": 3852412, 1491 | "err": "", 1492 | "name": "pickle", 1493 | "dtype": "dicts", 1494 | "items": 10000, 1495 | "avg": 0.127906, 1496 | "min": 0.019561, 1497 | "max": 1.062842, 1498 | "stdev": 0.311649, 1499 | "timings": [ 1500 | 0.01956, 1501 | 0.0242, 1502 | 0.02489, 1503 | 0.02478, 1504 | 0.02468, 1505 | 0.02435, 1506 | 0.02471, 1507 | 1.06284, 1508 | 0.02452, 1509 | 0.02452 1510 | ], 1511 | "baseline-speedup": 0.7159, 1512 | "baseline-ratio": 139.6933 1513 | }, 1514 | "bson_dicts_dump_10000": { 1515 | "fn": "dump", 1516 | "avg_serde": 0.05980200000000001, 1517 | "serialized_size": 4425432, 1518 | "err": "", 1519 | "name": "bson", 1520 | "dtype": "dicts", 1521 | "items": 10000, 1522 | "avg": 0.085347, 1523 | "min": 0.084508, 1524 | "max": 0.086777, 1525 | "stdev": 0.000632, 1526 | "timings": [ 1527 | 0.08678, 1528 | 0.08474, 1529 | 0.08451, 1530 | 0.08507, 1531 | 0.08563, 1532 | 0.0859, 1533 | 0.08536, 1534 | 0.08561, 1535 | 0.08487, 1536 | 0.08501 1537 | ], 1538 | "baseline-speedup": 0.4909, 1539 | "baseline-ratio": 203.7164 1540 | }, 1541 | "bson_dicts_load_10000": { 1542 | "fn": "load", 1543 | "avg_serde": 0.05980200000000001, 1544 | "serialized_size": 4425432, 1545 | "err": "", 1546 | "name": "bson", 1547 | "dtype": "dicts", 1548 | "items": 10000, 1549 | "avg": 0.034257, 1550 | "min": 0.028375, 1551 | "max": 0.035805, 1552 | "stdev": 0.001989, 1553 | "timings": [ 1554 | 0.02837, 1555 | 0.03451, 1556 | 0.03512, 1557 | 0.0358, 1558 | 0.03486, 1559 | 0.03471, 1560 | 0.03477, 1561 | 0.03489, 1562 | 0.03474, 1563 | 0.03478 1564 | ], 1565 | "baseline-speedup": 2.6728, 1566 | "baseline-ratio": 37.414 1567 | }, 1568 | "ujson_dicts_dump_10000": { 1569 | "fn": "dump", 1570 | "avg_serde": 0.033566, 1571 | "serialized_size": 7492914, 1572 | "err": "", 1573 | "name": "ujson", 1574 | "dtype": "dicts", 1575 | "items": 10000, 1576 | "avg": 0.023647, 1577 | "min": 0.023248, 1578 | "max": 0.025543, 1579 | "stdev": 0.000641, 1580 | "timings": [ 1581 | 0.02346, 1582 | 0.02554, 1583 | 0.02349, 1584 | 0.02325, 1585 | 0.02348, 1586 | 0.02367, 1587 | 0.0234, 1588 | 0.02343, 1589 | 0.02332, 1590 | 0.02342 1591 | ], 1592 | "baseline-speedup": 1.7717, 1593 | "baseline-ratio": 56.4435 1594 | }, 1595 | "ujson_dicts_load_10000": { 1596 | "fn": "load", 1597 | "avg_serde": 0.033566, 1598 | "serialized_size": 7492914, 1599 | "err": "", 1600 | "name": "ujson", 1601 | "dtype": "dicts", 1602 | "items": 10000, 1603 | "avg": 0.043485, 1604 | "min": 0.038117, 1605 | "max": 0.046573, 1606 | "stdev": 0.001988, 1607 | "timings": [ 1608 | 0.03812, 1609 | 0.04657, 1610 | 0.04425, 1611 | 0.04395, 1612 | 0.0435, 1613 | 0.04377, 1614 | 0.04349, 1615 | 0.04354, 1616 | 0.04365, 1617 | 0.04401 1618 | ], 1619 | "baseline-speedup": 2.1056, 1620 | "baseline-ratio": 47.4924 1621 | }, 1622 | "cbor_dicts_dump_10000": { 1623 | "fn": "dump", 1624 | "avg_serde": 0.023370500000000002, 1625 | "serialized_size": 3681356, 1626 | "err": "", 1627 | "name": "cbor", 1628 | "dtype": "dicts", 1629 | "items": 10000, 1630 | "avg": 0.015754, 1631 | "min": 0.015357, 1632 | "max": 0.016551, 1633 | "stdev": 0.000373, 1634 | "timings": [ 1635 | 0.01573, 1636 | 0.01611, 1637 | 0.01582, 1638 | 0.01655, 1639 | 0.01553, 1640 | 0.0154, 1641 | 0.01536, 1642 | 0.0161, 1643 | 0.01555, 1644 | 0.01539 1645 | ], 1646 | "baseline-speedup": 2.6593, 1647 | "baseline-ratio": 37.6035 1648 | }, 1649 | "cbor_dicts_load_10000": { 1650 | "fn": "load", 1651 | "avg_serde": 0.023370500000000002, 1652 | "serialized_size": 3681356, 1653 | "err": "", 1654 | "name": "cbor", 1655 | "dtype": "dicts", 1656 | "items": 10000, 1657 | "avg": 0.030987, 1658 | "min": 0.025849, 1659 | "max": 0.032087, 1660 | "stdev": 0.001734, 1661 | "timings": [ 1662 | 0.02585, 1663 | 0.03141, 1664 | 0.03166, 1665 | 0.03209, 1666 | 0.03095, 1667 | 0.03152, 1668 | 0.03168, 1669 | 0.03151, 1670 | 0.03147, 1671 | 0.03173 1672 | ], 1673 | "baseline-speedup": 2.9549, 1674 | "baseline-ratio": 33.8426 1675 | }, 1676 | "msgpack_dicts_dump_10000": { 1677 | "fn": "dump", 1678 | "avg_serde": 0.0199705, 1679 | "serialized_size": 3695629, 1680 | "err": "", 1681 | "name": "msgpack", 1682 | "dtype": "dicts", 1683 | "items": 10000, 1684 | "avg": 0.010236, 1685 | "min": 0.01002, 1686 | "max": 0.010538, 1687 | "stdev": 0.000152, 1688 | "timings": [ 1689 | 0.01031, 1690 | 0.01014, 1691 | 0.01054, 1692 | 0.01028, 1693 | 0.0103, 1694 | 0.01016, 1695 | 0.0104, 1696 | 0.01002, 1697 | 0.01004, 1698 | 0.01018 1699 | ], 1700 | "baseline-speedup": 4.0929, 1701 | "baseline-ratio": 24.4325 1702 | }, 1703 | "msgpack_dicts_load_10000": { 1704 | "fn": "load", 1705 | "avg_serde": 0.0199705, 1706 | "serialized_size": 3695629, 1707 | "err": "", 1708 | "name": "msgpack", 1709 | "dtype": "dicts", 1710 | "items": 10000, 1711 | "avg": 0.029705, 1712 | "min": 0.024325, 1713 | "max": 0.030968, 1714 | "stdev": 0.001813, 1715 | "timings": [ 1716 | 0.02432, 1717 | 0.03057, 1718 | 0.0302, 1719 | 0.03035, 1720 | 0.0302, 1721 | 0.03017, 1722 | 0.02998, 1723 | 0.03022, 1724 | 0.03007, 1725 | 0.03097 1726 | ], 1727 | "baseline-speedup": 3.0824, 1728 | "baseline-ratio": 32.4425 1729 | }, 1730 | "json_tuples_dump_10000": { 1731 | "fn": "dump", 1732 | "avg_serde": 0.053514, 1733 | "serialized_size": 6526661, 1734 | "err": "", 1735 | "name": "json", 1736 | "dtype": "tuples", 1737 | "items": 10000, 1738 | "avg": 0.03099, 1739 | "min": 0.030386, 1740 | "max": 0.031944, 1741 | "stdev": 0.000549, 1742 | "timings": [ 1743 | 0.03194, 1744 | 0.03164, 1745 | 0.03081, 1746 | 0.03065, 1747 | 0.03086, 1748 | 0.03182, 1749 | 0.03039, 1750 | 0.03056, 1751 | 0.03056, 1752 | 0.03068 1753 | ], 1754 | "baseline-speedup": 1.0, 1755 | "baseline-ratio": 100.0 1756 | }, 1757 | "json_tuples_load_10000": { 1758 | "fn": "load", 1759 | "avg_serde": 0.053514, 1760 | "serialized_size": 6526661, 1761 | "err": "", 1762 | "name": "json", 1763 | "dtype": "tuples", 1764 | "items": 10000, 1765 | "avg": 0.076038, 1766 | "min": 0.07291, 1767 | "max": 0.077269, 1768 | "stdev": 0.001104, 1769 | "timings": [ 1770 | 0.07291, 1771 | 0.07618, 1772 | 0.07648, 1773 | 0.07727, 1774 | 0.07627, 1775 | 0.07625, 1776 | 0.07587, 1777 | 0.07603, 1778 | 0.07649, 1779 | 0.07664 1780 | ], 1781 | "baseline-speedup": 1.0, 1782 | "baseline-ratio": 100.0 1783 | }, 1784 | "pickle_tuples_dump_10000": { 1785 | "fn": "dump", 1786 | "avg_serde": 0.0645785, 1787 | "serialized_size": 3632952, 1788 | "err": "", 1789 | "name": "pickle", 1790 | "dtype": "tuples", 1791 | "items": 10000, 1792 | "avg": 0.01462, 1793 | "min": 0.014008, 1794 | "max": 0.015465, 1795 | "stdev": 0.000471, 1796 | "timings": [ 1797 | 0.01423, 1798 | 0.01498, 1799 | 0.01424, 1800 | 0.01546, 1801 | 0.01404, 1802 | 0.01498, 1803 | 0.01401, 1804 | 0.01506, 1805 | 0.01447, 1806 | 0.01474 1807 | ], 1808 | "baseline-speedup": 2.1197, 1809 | "baseline-ratio": 47.1765 1810 | }, 1811 | "pickle_tuples_load_10000": { 1812 | "fn": "load", 1813 | "avg_serde": 0.0645785, 1814 | "serialized_size": 3632952, 1815 | "err": "", 1816 | "name": "pickle", 1817 | "dtype": "tuples", 1818 | "items": 10000, 1819 | "avg": 0.114537, 1820 | "min": 0.017858, 1821 | "max": 0.954986, 1822 | "stdev": 0.280153, 1823 | "timings": [ 1824 | 0.01786, 1825 | 0.02154, 1826 | 0.02107, 1827 | 0.95499, 1828 | 0.02423, 1829 | 0.02107, 1830 | 0.02083, 1831 | 0.02119, 1832 | 0.02121, 1833 | 0.02137 1834 | ], 1835 | "baseline-speedup": 0.6639, 1836 | "baseline-ratio": 150.6313 1837 | }, 1838 | "ujson_tuples_dump_10000": { 1839 | "fn": "dump", 1840 | "avg_serde": 0.026259, 1841 | "serialized_size": 6416049, 1842 | "err": "", 1843 | "name": "ujson", 1844 | "dtype": "tuples", 1845 | "items": 10000, 1846 | "avg": 0.020289, 1847 | "min": 0.02007, 1848 | "max": 0.021008, 1849 | "stdev": 0.000261, 1850 | "timings": [ 1851 | 0.0202, 1852 | 0.02101, 1853 | 0.02007, 1854 | 0.02026, 1855 | 0.02009, 1856 | 0.02043, 1857 | 0.02022, 1858 | 0.02011, 1859 | 0.02033, 1860 | 0.02017 1861 | ], 1862 | "baseline-speedup": 1.5274, 1863 | "baseline-ratio": 65.4695 1864 | }, 1865 | "ujson_tuples_load_10000": { 1866 | "fn": "load", 1867 | "avg_serde": 0.026259, 1868 | "serialized_size": 6416049, 1869 | "err": "", 1870 | "name": "ujson", 1871 | "dtype": "tuples", 1872 | "items": 10000, 1873 | "avg": 0.032229, 1874 | "min": 0.029083, 1875 | "max": 0.034973, 1876 | "stdev": 0.001328, 1877 | "timings": [ 1878 | 0.02908, 1879 | 0.03248, 1880 | 0.03231, 1881 | 0.03212, 1882 | 0.03257, 1883 | 0.03497, 1884 | 0.03221, 1885 | 0.03223, 1886 | 0.03221, 1887 | 0.0321 1888 | ], 1889 | "baseline-speedup": 2.3593, 1890 | "baseline-ratio": 42.3854 1891 | }, 1892 | "parquet_tuples_dump_10000": { 1893 | "fn": "dump", 1894 | "avg_serde": 0.0249785, 1895 | "serialized_size": 3011053, 1896 | "err": "", 1897 | "name": "parquet", 1898 | "dtype": "tuples", 1899 | "items": 10000, 1900 | "avg": 0.039377, 1901 | "min": 0.038227, 1902 | "max": 0.040344, 1903 | "stdev": 0.000626, 1904 | "timings": [ 1905 | 0.03988, 1906 | 0.03981, 1907 | 0.04034, 1908 | 0.03943, 1909 | 0.03999, 1910 | 0.03866, 1911 | 0.03882, 1912 | 0.03929, 1913 | 0.03823, 1914 | 0.0393 1915 | ], 1916 | "baseline-speedup": 0.787, 1917 | "baseline-ratio": 127.0636 1918 | }, 1919 | "parquet_tuples_load_10000": { 1920 | "fn": "load", 1921 | "avg_serde": 0.0249785, 1922 | "serialized_size": 3011053, 1923 | "err": "", 1924 | "name": "parquet", 1925 | "dtype": "tuples", 1926 | "items": 10000, 1927 | "avg": 0.01058, 1928 | "min": 0.010002, 1929 | "max": 0.011188, 1930 | "stdev": 0.000364, 1931 | "timings": [ 1932 | 0.01096, 1933 | 0.01108, 1934 | 0.01068, 1935 | 0.01032, 1936 | 0.01038, 1937 | 0.01033, 1938 | 0.01, 1939 | 0.01042, 1940 | 0.01119, 1941 | 0.01044 1942 | ], 1943 | "baseline-speedup": 7.187, 1944 | "baseline-ratio": 13.9141 1945 | }, 1946 | "protobuf_tuples_dump_10000": { 1947 | "fn": "dump", 1948 | "avg_serde": 0.48309900000000006, 1949 | "serialized_size": 2954329, 1950 | "err": "", 1951 | "name": "protobuf", 1952 | "dtype": "tuples", 1953 | "items": 10000, 1954 | "avg": 0.516924, 1955 | "min": 0.503242, 1956 | "max": 0.531716, 1957 | "stdev": 0.011374, 1958 | "timings": [ 1959 | 0.50695, 1960 | 0.50573, 1961 | 0.5036, 1962 | 0.50324, 1963 | 0.50979, 1964 | 0.52289, 1965 | 0.52932, 1966 | 0.52797, 1967 | 0.52803, 1968 | 0.53172 1969 | ], 1970 | "baseline-speedup": 0.06, 1971 | "baseline-ratio": 1668.0348 1972 | }, 1973 | "protobuf_tuples_load_10000": { 1974 | "fn": "load", 1975 | "avg_serde": 0.48309900000000006, 1976 | "serialized_size": 2954329, 1977 | "err": "", 1978 | "name": "protobuf", 1979 | "dtype": "tuples", 1980 | "items": 10000, 1981 | "avg": 0.449274, 1982 | "min": 0.341529, 1983 | "max": 1.302599, 1984 | "stdev": 0.284586, 1985 | "timings": [ 1986 | 0.34828, 1987 | 0.36008, 1988 | 0.35626, 1989 | 0.37176, 1990 | 0.36463, 1991 | 0.35691, 1992 | 1.3026, 1993 | 0.34153, 1994 | 0.34678, 1995 | 0.3439 1996 | ], 1997 | "baseline-speedup": 0.1692, 1998 | "baseline-ratio": 590.8546 1999 | }, 2000 | "cbor_tuples_dump_10000": { 2001 | "fn": "dump", 2002 | "avg_serde": 0.015019500000000002, 2003 | "serialized_size": 2823831, 2004 | "err": "", 2005 | "name": "cbor", 2006 | "dtype": "tuples", 2007 | "items": 10000, 2008 | "avg": 0.011121, 2009 | "min": 0.010876, 2010 | "max": 0.011437, 2011 | "stdev": 0.000182, 2012 | "timings": [ 2013 | 0.01127, 2014 | 0.01116, 2015 | 0.01144, 2016 | 0.01106, 2017 | 0.01123, 2018 | 0.01133, 2019 | 0.01092, 2020 | 0.01095, 2021 | 0.01099, 2022 | 0.01088 2023 | ], 2024 | "baseline-speedup": 2.7866, 2025 | "baseline-ratio": 35.8858 2026 | }, 2027 | "cbor_tuples_load_10000": { 2028 | "fn": "load", 2029 | "avg_serde": 0.015019500000000002, 2030 | "serialized_size": 2823831, 2031 | "err": "", 2032 | "name": "cbor", 2033 | "dtype": "tuples", 2034 | "items": 10000, 2035 | "avg": 0.018918, 2036 | "min": 0.015635, 2037 | "max": 0.019655, 2038 | "stdev": 0.001105, 2039 | "timings": [ 2040 | 0.01564, 2041 | 0.01919, 2042 | 0.01933, 2043 | 0.0191, 2044 | 0.01934, 2045 | 0.01925, 2046 | 0.01933, 2047 | 0.01929, 2048 | 0.01965, 2049 | 0.01907 2050 | ], 2051 | "baseline-speedup": 4.0193, 2052 | "baseline-ratio": 24.8797 2053 | }, 2054 | "msgpack_tuples_dump_10000": { 2055 | "fn": "dump", 2056 | "avg_serde": 0.012971, 2057 | "serialized_size": 2838104, 2058 | "err": "", 2059 | "name": "msgpack", 2060 | "dtype": "tuples", 2061 | "items": 10000, 2062 | "avg": 0.008103, 2063 | "min": 0.007924, 2064 | "max": 0.008714, 2065 | "stdev": 0.000216, 2066 | "timings": [ 2067 | 0.00798, 2068 | 0.00799, 2069 | 0.00792, 2070 | 0.00871, 2071 | 0.00807, 2072 | 0.0081, 2073 | 0.00818, 2074 | 0.00807, 2075 | 0.00797, 2076 | 0.00805 2077 | ], 2078 | "baseline-speedup": 3.8245, 2079 | "baseline-ratio": 26.1471 2080 | }, 2081 | "msgpack_tuples_load_10000": { 2082 | "fn": "load", 2083 | "avg_serde": 0.012971, 2084 | "serialized_size": 2838104, 2085 | "err": "", 2086 | "name": "msgpack", 2087 | "dtype": "tuples", 2088 | "items": 10000, 2089 | "avg": 0.017839, 2090 | "min": 0.014682, 2091 | "max": 0.018553, 2092 | "stdev": 0.00107, 2093 | "timings": [ 2094 | 0.01468, 2095 | 0.0181, 2096 | 0.01818, 2097 | 0.01827, 2098 | 0.01855, 2099 | 0.01806, 2100 | 0.0178, 2101 | 0.01824, 2102 | 0.0181, 2103 | 0.01841 2104 | ], 2105 | "baseline-speedup": 4.2625, 2106 | "baseline-ratio": 23.4606 2107 | }, 2108 | "json_dicts_dump_100000": { 2109 | "fn": "dump", 2110 | "avg_serde": 0.777617, 2111 | "serialized_size": 77995071, 2112 | "err": "", 2113 | "name": "json", 2114 | "dtype": "dicts", 2115 | "items": 100000, 2116 | "avg": 0.459902, 2117 | "min": 0.449654, 2118 | "max": 0.464944, 2119 | "stdev": 0.004603, 2120 | "timings": [ 2121 | 0.44965, 2122 | 0.45371, 2123 | 0.45715, 2124 | 0.46218, 2125 | 0.46185, 2126 | 0.4625, 2127 | 0.46329, 2128 | 0.46494, 2129 | 0.46138, 2130 | 0.46237 2131 | ], 2132 | "baseline-speedup": 1.0, 2133 | "baseline-ratio": 100.0 2134 | }, 2135 | "json_dicts_load_100000": { 2136 | "fn": "load", 2137 | "avg_serde": 0.777617, 2138 | "serialized_size": 77995071, 2139 | "err": "", 2140 | "name": "json", 2141 | "dtype": "dicts", 2142 | "items": 100000, 2143 | "avg": 1.095332, 2144 | "min": 0.867094, 2145 | "max": 1.907979, 2146 | "stdev": 0.406216, 2147 | "timings": [ 2148 | 0.86709, 2149 | 1.90718, 2150 | 0.8975, 2151 | 0.89434, 2152 | 0.89387, 2153 | 0.89781, 2154 | 0.8979, 2155 | 0.89628, 2156 | 1.90798, 2157 | 0.89337 2158 | ], 2159 | "baseline-speedup": 1.0, 2160 | "baseline-ratio": 100.0 2161 | }, 2162 | "pickle_dicts_dump_100000": { 2163 | "fn": "dump", 2164 | "avg_serde": 0.3059315, 2165 | "serialized_size": 38874514, 2166 | "err": "", 2167 | "name": "pickle", 2168 | "dtype": "dicts", 2169 | "items": 100000, 2170 | "avg": 0.269439, 2171 | "min": 0.260294, 2172 | "max": 0.298086, 2173 | "stdev": 0.010382, 2174 | "timings": [ 2175 | 0.29809, 2176 | 0.26029, 2177 | 0.27245, 2178 | 0.2675, 2179 | 0.26114, 2180 | 0.2706, 2181 | 0.26746, 2182 | 0.26047, 2183 | 0.26942, 2184 | 0.26695 2185 | ], 2186 | "baseline-speedup": 1.7069, 2187 | "baseline-ratio": 58.5862 2188 | }, 2189 | "pickle_dicts_load_100000": { 2190 | "fn": "load", 2191 | "avg_serde": 0.3059315, 2192 | "serialized_size": 38874514, 2193 | "err": "", 2194 | "name": "pickle", 2195 | "dtype": "dicts", 2196 | "items": 100000, 2197 | "avg": 0.342424, 2198 | "min": 0.198677, 2199 | "max": 1.256702, 2200 | "stdev": 0.305089, 2201 | "timings": [ 2202 | 0.19868, 2203 | 0.24336, 2204 | 0.24489, 2205 | 0.24753, 2206 | 0.24643, 2207 | 1.2567, 2208 | 0.24648, 2209 | 0.24702, 2210 | 0.24601, 2211 | 0.24714 2212 | ], 2213 | "baseline-speedup": 3.1988, 2214 | "baseline-ratio": 31.2621 2215 | }, 2216 | "bson_dicts_dump_100000": { 2217 | "fn": "dump", 2218 | "avg_serde": 0.7117445, 2219 | "serialized_size": 44608350, 2220 | "err": "", 2221 | "name": "bson", 2222 | "dtype": "dicts", 2223 | "items": 100000, 2224 | "avg": 0.971436, 2225 | "min": 0.871952, 2226 | "max": 1.820051, 2227 | "stdev": 0.282889, 2228 | "timings": [ 2229 | 0.87904, 2230 | 0.87236, 2231 | 0.87195, 2232 | 0.88277, 2233 | 0.87758, 2234 | 0.8786, 2235 | 0.87498, 2236 | 0.87742, 2237 | 1.82005, 2238 | 0.87962 2239 | ], 2240 | "baseline-speedup": 0.4734, 2241 | "baseline-ratio": 211.2267 2242 | }, 2243 | "bson_dicts_load_100000": { 2244 | "fn": "load", 2245 | "avg_serde": 0.7117445, 2246 | "serialized_size": 44608350, 2247 | "err": "", 2248 | "name": "bson", 2249 | "dtype": "dicts", 2250 | "items": 100000, 2251 | "avg": 0.452053, 2252 | "min": 0.292113, 2253 | "max": 1.373292, 2254 | "stdev": 0.307691, 2255 | "timings": [ 2256 | 0.29211, 2257 | 0.35284, 2258 | 0.35743, 2259 | 0.35833, 2260 | 0.35849, 2261 | 0.35862, 2262 | 1.37329, 2263 | 0.35555, 2264 | 0.35697, 2265 | 0.3569 2266 | ], 2267 | "baseline-speedup": 2.423, 2268 | "baseline-ratio": 41.2709 2269 | }, 2270 | "ujson_dicts_dump_100000": { 2271 | "fn": "dump", 2272 | "avg_serde": 0.4154215, 2273 | "serialized_size": 75790227, 2274 | "err": "", 2275 | "name": "ujson", 2276 | "dtype": "dicts", 2277 | "items": 100000, 2278 | "avg": 0.268397, 2279 | "min": 0.266844, 2280 | "max": 0.269988, 2281 | "stdev": 0.000928, 2282 | "timings": [ 2283 | 0.26922, 2284 | 0.26881, 2285 | 0.26882, 2286 | 0.26746, 2287 | 0.26999, 2288 | 0.26733, 2289 | 0.26797, 2290 | 0.26684, 2291 | 0.26907, 2292 | 0.26846 2293 | ], 2294 | "baseline-speedup": 1.7135, 2295 | "baseline-ratio": 58.3596 2296 | }, 2297 | "ujson_dicts_load_100000": { 2298 | "fn": "load", 2299 | "avg_serde": 0.4154215, 2300 | "serialized_size": 75790227, 2301 | "err": "", 2302 | "name": "ujson", 2303 | "dtype": "dicts", 2304 | "items": 100000, 2305 | "avg": 0.562446, 2306 | "min": 0.402974, 2307 | "max": 1.489334, 2308 | "stdev": 0.309555, 2309 | "timings": [ 2310 | 0.40297, 2311 | 0.46175, 2312 | 0.46756, 2313 | 1.48933, 2314 | 0.46457, 2315 | 0.46632, 2316 | 0.46563, 2317 | 0.47348, 2318 | 0.46659, 2319 | 0.46626 2320 | ], 2321 | "baseline-speedup": 1.9474, 2322 | "baseline-ratio": 51.3494 2323 | }, 2324 | "cbor_dicts_dump_100000": { 2325 | "fn": "dump", 2326 | "avg_serde": 0.34472749999999996, 2327 | "serialized_size": 37157995, 2328 | "err": "", 2329 | "name": "cbor", 2330 | "dtype": "dicts", 2331 | "items": 100000, 2332 | "avg": 0.177986, 2333 | "min": 0.176309, 2334 | "max": 0.180198, 2335 | "stdev": 0.001042, 2336 | "timings": [ 2337 | 0.1802, 2338 | 0.17716, 2339 | 0.17773, 2340 | 0.17884, 2341 | 0.17716, 2342 | 0.17631, 2343 | 0.1779, 2344 | 0.17757, 2345 | 0.17888, 2346 | 0.17812 2347 | ], 2348 | "baseline-speedup": 2.5839, 2349 | "baseline-ratio": 38.7009 2350 | }, 2351 | "cbor_dicts_load_100000": { 2352 | "fn": "load", 2353 | "avg_serde": 0.34472749999999996, 2354 | "serialized_size": 37157995, 2355 | "err": "", 2356 | "name": "cbor", 2357 | "dtype": "dicts", 2358 | "items": 100000, 2359 | "avg": 0.511469, 2360 | "min": 0.317463, 2361 | "max": 1.333656, 2362 | "stdev": 0.381, 2363 | "timings": [ 2364 | 1.2092, 2365 | 0.31746, 2366 | 0.32126, 2367 | 0.32102, 2368 | 0.32352, 2369 | 0.32265, 2370 | 0.32109, 2371 | 1.33366, 2372 | 0.32227, 2373 | 0.32258 2374 | ], 2375 | "baseline-speedup": 2.1415, 2376 | "baseline-ratio": 46.6953 2377 | }, 2378 | "msgpack_dicts_dump_100000": { 2379 | "fn": "dump", 2380 | "avg_serde": 0.2627565, 2381 | "serialized_size": 37301784, 2382 | "err": "", 2383 | "name": "msgpack", 2384 | "dtype": "dicts", 2385 | "items": 100000, 2386 | "avg": 0.123262, 2387 | "min": 0.122606, 2388 | "max": 0.124602, 2389 | "stdev": 0.000559, 2390 | "timings": [ 2391 | 0.1246, 2392 | 0.12261, 2393 | 0.12261, 2394 | 0.12295, 2395 | 0.12299, 2396 | 0.12378, 2397 | 0.12317, 2398 | 0.1234, 2399 | 0.12325, 2400 | 0.12326 2401 | ], 2402 | "baseline-speedup": 3.7311, 2403 | "baseline-ratio": 26.8018 2404 | }, 2405 | "msgpack_dicts_load_100000": { 2406 | "fn": "load", 2407 | "avg_serde": 0.2627565, 2408 | "serialized_size": 37301784, 2409 | "err": "", 2410 | "name": "msgpack", 2411 | "dtype": "dicts", 2412 | "items": 100000, 2413 | "avg": 0.402251, 2414 | "min": 0.243256, 2415 | "max": 1.315649, 2416 | "stdev": 0.30508, 2417 | "timings": [ 2418 | 0.24326, 2419 | 0.30384, 2420 | 0.30941, 2421 | 0.30779, 2422 | 1.31565, 2423 | 0.30803, 2424 | 0.30855, 2425 | 0.30862, 2426 | 0.30885, 2427 | 0.3085 2428 | ], 2429 | "baseline-speedup": 2.723, 2430 | "baseline-ratio": 36.7241 2431 | }, 2432 | "json_tuples_dump_100000": { 2433 | "fn": "dump", 2434 | "avg_serde": 0.6970695, 2435 | "serialized_size": 66107440, 2436 | "err": "", 2437 | "name": "json", 2438 | "dtype": "tuples", 2439 | "items": 100000, 2440 | "avg": 0.327145, 2441 | "min": 0.323556, 2442 | "max": 0.337751, 2443 | "stdev": 0.003726, 2444 | "timings": [ 2445 | 0.33775, 2446 | 0.32682, 2447 | 0.32782, 2448 | 0.32698, 2449 | 0.32612, 2450 | 0.32557, 2451 | 0.32356, 2452 | 0.325, 2453 | 0.32684, 2454 | 0.32499 2455 | ], 2456 | "baseline-speedup": 1.0, 2457 | "baseline-ratio": 100.0 2458 | }, 2459 | "json_tuples_load_100000": { 2460 | "fn": "load", 2461 | "avg_serde": 0.6970695, 2462 | "serialized_size": 66107440, 2463 | "err": "", 2464 | "name": "json", 2465 | "dtype": "tuples", 2466 | "items": 100000, 2467 | "avg": 1.066994, 2468 | "min": 0.769085, 2469 | "max": 1.783436, 2470 | "stdev": 0.450718, 2471 | "timings": [ 2472 | 1.71437, 2473 | 0.77668, 2474 | 0.76908, 2475 | 0.77122, 2476 | 1.78344, 2477 | 0.77133, 2478 | 0.77137, 2479 | 0.77221, 2480 | 0.77295, 2481 | 1.76728 2482 | ], 2483 | "baseline-speedup": 1.0, 2484 | "baseline-ratio": 100.0 2485 | }, 2486 | "pickle_tuples_dump_100000": { 2487 | "fn": "dump", 2488 | "avg_serde": 0.35113099999999997, 2489 | "serialized_size": 36676750, 2490 | "err": "", 2491 | "name": "pickle", 2492 | "dtype": "tuples", 2493 | "items": 100000, 2494 | "avg": 0.288601, 2495 | "min": 0.27988, 2496 | "max": 0.2914, 2497 | "stdev": 0.003013, 2498 | "timings": [ 2499 | 0.27988, 2500 | 0.28986, 2501 | 0.2914, 2502 | 0.28904, 2503 | 0.29017, 2504 | 0.28916, 2505 | 0.28934, 2506 | 0.28993, 2507 | 0.2887, 2508 | 0.28853 2509 | ], 2510 | "baseline-speedup": 1.1336, 2511 | "baseline-ratio": 88.2181 2512 | }, 2513 | "pickle_tuples_load_100000": { 2514 | "fn": "load", 2515 | "avg_serde": 0.35113099999999997, 2516 | "serialized_size": 36676750, 2517 | "err": "", 2518 | "name": "pickle", 2519 | "dtype": "tuples", 2520 | "items": 100000, 2521 | "avg": 0.413661, 2522 | "min": 0.192104, 2523 | "max": 1.224711, 2524 | "stdev": 0.398679, 2525 | "timings": [ 2526 | 0.1921, 2527 | 0.21644, 2528 | 0.21837, 2529 | 1.22471, 2530 | 0.21818, 2531 | 0.21689, 2532 | 0.21739, 2533 | 0.21754, 2534 | 1.19685, 2535 | 0.21813 2536 | ], 2537 | "baseline-speedup": 2.5794, 2538 | "baseline-ratio": 38.7688 2539 | }, 2540 | "ujson_tuples_dump_100000": { 2541 | "fn": "dump", 2542 | "avg_serde": 0.38647000000000004, 2543 | "serialized_size": 65001418, 2544 | "err": "", 2545 | "name": "ujson", 2546 | "dtype": "tuples", 2547 | "items": 100000, 2548 | "avg": 0.231685, 2549 | "min": 0.230295, 2550 | "max": 0.235754, 2551 | "stdev": 0.001671, 2552 | "timings": [ 2553 | 0.23385, 2554 | 0.23137, 2555 | 0.23158, 2556 | 0.23101, 2557 | 0.23088, 2558 | 0.23575, 2559 | 0.23045, 2560 | 0.23032, 2561 | 0.2303, 2562 | 0.23134 2563 | ], 2564 | "baseline-speedup": 1.412, 2565 | "baseline-ratio": 70.8203 2566 | }, 2567 | "ujson_tuples_load_100000": { 2568 | "fn": "load", 2569 | "avg_serde": 0.38647000000000004, 2570 | "serialized_size": 65001418, 2571 | "err": "", 2572 | "name": "ujson", 2573 | "dtype": "tuples", 2574 | "items": 100000, 2575 | "avg": 0.541255, 2576 | "min": 0.310635, 2577 | "max": 1.362442, 2578 | "stdev": 0.406503, 2579 | "timings": [ 2580 | 0.31063, 2581 | 0.34077, 2582 | 1.34558, 2583 | 0.34194, 2584 | 0.34161, 2585 | 0.34231, 2586 | 1.36244, 2587 | 0.34305, 2588 | 0.34182, 2589 | 0.34239 2590 | ], 2591 | "baseline-speedup": 1.9713, 2592 | "baseline-ratio": 50.7271 2593 | }, 2594 | "parquet_tuples_dump_100000": { 2595 | "fn": "dump", 2596 | "avg_serde": 0.2424675, 2597 | "serialized_size": 30153830, 2598 | "err": "", 2599 | "name": "parquet", 2600 | "dtype": "tuples", 2601 | "items": 100000, 2602 | "avg": 0.383494, 2603 | "min": 0.375991, 2604 | "max": 0.396987, 2605 | "stdev": 0.005444, 2606 | "timings": [ 2607 | 0.39699, 2608 | 0.38505, 2609 | 0.38508, 2610 | 0.38463, 2611 | 0.38321, 2612 | 0.38448, 2613 | 0.38076, 2614 | 0.37599, 2615 | 0.38155, 2616 | 0.37721 2617 | ], 2618 | "baseline-speedup": 0.8531, 2619 | "baseline-ratio": 117.2245 2620 | }, 2621 | "parquet_tuples_load_100000": { 2622 | "fn": "load", 2623 | "avg_serde": 0.2424675, 2624 | "serialized_size": 30153830, 2625 | "err": "", 2626 | "name": "parquet", 2627 | "dtype": "tuples", 2628 | "items": 100000, 2629 | "avg": 0.101441, 2630 | "min": 0.095289, 2631 | "max": 0.105983, 2632 | "stdev": 0.003276, 2633 | "timings": [ 2634 | 0.10496, 2635 | 0.09685, 2636 | 0.10598, 2637 | 0.10359, 2638 | 0.09997, 2639 | 0.09529, 2640 | 0.1027, 2641 | 0.10296, 2642 | 0.09956, 2643 | 0.10255 2644 | ], 2645 | "baseline-speedup": 10.5184, 2646 | "baseline-ratio": 9.5072 2647 | }, 2648 | "protobuf_tuples_dump_100000": { 2649 | "fn": "dump", 2650 | "avg_serde": 4.807641, 2651 | "serialized_size": 29875574, 2652 | "err": "", 2653 | "name": "protobuf", 2654 | "dtype": "tuples", 2655 | "items": 100000, 2656 | "avg": 5.252045, 2657 | "min": 5.038504, 2658 | "max": 5.336888, 2659 | "stdev": 0.103159, 2660 | "timings": [ 2661 | 5.0692, 2662 | 5.0385, 2663 | 5.22599, 2664 | 5.31031, 2665 | 5.3155, 2666 | 5.33689, 2667 | 5.30596, 2668 | 5.32273, 2669 | 5.29491, 2670 | 5.30046 2671 | ], 2672 | "baseline-speedup": 0.0623, 2673 | "baseline-ratio": 1605.4181 2674 | }, 2675 | "protobuf_tuples_load_100000": { 2676 | "fn": "load", 2677 | "avg_serde": 4.807641, 2678 | "serialized_size": 29875574, 2679 | "err": "", 2680 | "name": "protobuf", 2681 | "dtype": "tuples", 2682 | "items": 100000, 2683 | "avg": 4.363237, 2684 | "min": 3.496037, 2685 | "max": 4.807641, 2686 | "stdev": 0.554374, 2687 | "timings": [ 2688 | 4.39212, 2689 | 4.80191, 2690 | 4.79411, 2691 | 3.55072, 2692 | 4.70677, 2693 | 4.80764, 2694 | 3.49604, 2695 | 4.77296, 2696 | 4.75177, 2697 | 3.55836 2698 | ], 2699 | "baseline-speedup": 0.2445, 2700 | "baseline-ratio": 408.928 2701 | }, 2702 | "cbor_tuples_dump_100000": { 2703 | "fn": "dump", 2704 | "avg_serde": 0.2998205, 2705 | "serialized_size": 28566830, 2706 | "err": "", 2707 | "name": "cbor", 2708 | "dtype": "tuples", 2709 | "items": 100000, 2710 | "avg": 0.115195, 2711 | "min": 0.110794, 2712 | "max": 0.13541, 2713 | "stdev": 0.007203, 2714 | "timings": [ 2715 | 0.13541, 2716 | 0.12008, 2717 | 0.11127, 2718 | 0.11202, 2719 | 0.11079, 2720 | 0.11425, 2721 | 0.11174, 2722 | 0.11201, 2723 | 0.11173, 2724 | 0.11264 2725 | ], 2726 | "baseline-speedup": 2.8399, 2727 | "baseline-ratio": 35.2122 2728 | }, 2729 | "cbor_tuples_load_100000": { 2730 | "fn": "load", 2731 | "avg_serde": 0.2998205, 2732 | "serialized_size": 28566830, 2733 | "err": "", 2734 | "name": "cbor", 2735 | "dtype": "tuples", 2736 | "items": 100000, 2737 | "avg": 0.484446, 2738 | "min": 0.193939, 2739 | "max": 1.198569, 2740 | "stdev": 0.442431, 2741 | "timings": [ 2742 | 1.09862, 2743 | 0.19421, 2744 | 0.19547, 2745 | 0.19568, 2746 | 1.18067, 2747 | 0.19437, 2748 | 0.19513, 2749 | 0.1978, 2750 | 1.19857, 2751 | 0.19394 2752 | ], 2753 | "baseline-speedup": 2.2025, 2754 | "baseline-ratio": 45.4029 2755 | }, 2756 | "msgpack_tuples_dump_100000": { 2757 | "fn": "dump", 2758 | "avg_serde": 0.234677, 2759 | "serialized_size": 28710619, 2760 | "err": "", 2761 | "name": "msgpack", 2762 | "dtype": "tuples", 2763 | "items": 100000, 2764 | "avg": 0.09205, 2765 | "min": 0.088723, 2766 | "max": 0.103025, 2767 | "stdev": 0.004463, 2768 | "timings": [ 2769 | 0.10303, 2770 | 0.09793, 2771 | 0.08872, 2772 | 0.08967, 2773 | 0.08958, 2774 | 0.08994, 2775 | 0.09066, 2776 | 0.0923, 2777 | 0.08914, 2778 | 0.08952 2779 | ], 2780 | "baseline-speedup": 3.554, 2781 | "baseline-ratio": 28.1374 2782 | }, 2783 | "msgpack_tuples_load_100000": { 2784 | "fn": "load", 2785 | "avg_serde": 0.234677, 2786 | "serialized_size": 28710619, 2787 | "err": "", 2788 | "name": "msgpack", 2789 | "dtype": "tuples", 2790 | "items": 100000, 2791 | "avg": 0.377304, 2792 | "min": 0.149706, 2793 | "max": 1.173121, 2794 | "stdev": 0.395788, 2795 | "timings": [ 2796 | 0.14971, 2797 | 0.18569, 2798 | 0.18339, 2799 | 1.16411, 2800 | 0.18325, 2801 | 0.18301, 2802 | 0.18397, 2803 | 1.17312, 2804 | 0.18304, 2805 | 0.18375 2806 | ], 2807 | "baseline-speedup": 2.8279, 2808 | "baseline-ratio": 35.3614 2809 | }, 2810 | "json_dicts_dump_1000000": { 2811 | "fn": "dump", 2812 | "avg_serde": 8.00302, 2813 | "serialized_size": 781815927, 2814 | "err": "", 2815 | "name": "json", 2816 | "dtype": "dicts", 2817 | "items": 1000000, 2818 | "avg": 4.858123, 2819 | "min": 4.769558, 2820 | "max": 4.920982, 2821 | "stdev": 0.046451, 2822 | "timings": [ 2823 | 4.77056, 2824 | 4.76956, 2825 | 4.87618, 2826 | 4.86727, 2827 | 4.86943, 2828 | 4.92098, 2829 | 4.8832, 2830 | 4.87262, 2831 | 4.86802, 2832 | 4.88342 2833 | ], 2834 | "baseline-speedup": 1.0, 2835 | "baseline-ratio": 100.0 2836 | }, 2837 | "json_dicts_load_1000000": { 2838 | "fn": "load", 2839 | "avg_serde": 8.00302, 2840 | "serialized_size": 781815927, 2841 | "err": "", 2842 | "name": "json", 2843 | "dtype": "dicts", 2844 | "items": 1000000, 2845 | "avg": 11.147917, 2846 | "min": 9.388656, 2847 | "max": 13.335832, 2848 | "stdev": 1.280623, 2849 | "timings": [ 2850 | 10.12025, 2851 | 13.26842, 2852 | 9.46579, 2853 | 11.4465, 2854 | 11.14469, 2855 | 13.33583, 2856 | 9.38866, 2857 | 11.13749, 2858 | 10.94647, 2859 | 11.22507 2860 | ], 2861 | "baseline-speedup": 1.0, 2862 | "baseline-ratio": 100.0 2863 | }, 2864 | "pickle_dicts_dump_1000000": { 2865 | "fn": "dump", 2866 | "avg_serde": 3.755861, 2867 | "serialized_size": 389496209, 2868 | "err": "", 2869 | "name": "pickle", 2870 | "dtype": "dicts", 2871 | "items": 1000000, 2872 | "avg": 3.087295, 2873 | "min": 3.031015, 2874 | "max": 3.324423, 2875 | "stdev": 0.087496, 2876 | "timings": [ 2877 | 3.32442, 2878 | 3.04575, 2879 | 3.03558, 2880 | 3.03101, 2881 | 3.03613, 2882 | 3.16106, 2883 | 3.09343, 2884 | 3.05857, 2885 | 3.0432, 2886 | 3.04381 2887 | ], 2888 | "baseline-speedup": 1.5736, 2889 | "baseline-ratio": 63.5491 2890 | }, 2891 | "pickle_dicts_load_1000000": { 2892 | "fn": "load", 2893 | "avg_serde": 3.755861, 2894 | "serialized_size": 389496209, 2895 | "err": "", 2896 | "name": "pickle", 2897 | "dtype": "dicts", 2898 | "items": 1000000, 2899 | "avg": 4.424427, 2900 | "min": 2.838471, 2901 | "max": 6.292049, 2902 | "stdev": 0.938025, 2903 | "timings": [ 2904 | 4.55067, 2905 | 4.61062, 2906 | 4.58455, 2907 | 4.68472, 2908 | 4.64117, 2909 | 4.76448, 2910 | 2.83847, 2911 | 6.29205, 2912 | 2.84678, 2913 | 4.43076 2914 | ], 2915 | "baseline-speedup": 2.5196, 2916 | "baseline-ratio": 39.6884 2917 | }, 2918 | "bson_dicts_dump_1000000": { 2919 | "fn": "dump", 2920 | "avg_serde": 7.926932, 2921 | "serialized_size": 446883139, 2922 | "err": "", 2923 | "name": "bson", 2924 | "dtype": "dicts", 2925 | "items": 1000000, 2926 | "avg": 9.722888, 2927 | "min": 8.90019, 2928 | "max": 10.347911, 2929 | "stdev": 0.518267, 2930 | "timings": [ 2931 | 10.01008, 2932 | 8.90019, 2933 | 10.15689, 2934 | 9.51037, 2935 | 10.31583, 2936 | 9.24946, 2937 | 10.24346, 2938 | 9.20526, 2939 | 10.34791, 2940 | 9.28943 2941 | ], 2942 | "baseline-speedup": 0.4997, 2943 | "baseline-ratio": 200.1367 2944 | }, 2945 | "bson_dicts_load_1000000": { 2946 | "fn": "load", 2947 | "avg_serde": 7.926932, 2948 | "serialized_size": 446883139, 2949 | "err": "", 2950 | "name": "bson", 2951 | "dtype": "dicts", 2952 | "items": 1000000, 2953 | "avg": 6.130976, 2954 | "min": 4.103781, 2955 | "max": 8.380295, 2956 | "stdev": 1.578368, 2957 | "timings": [ 2958 | 4.56852, 2959 | 8.38029, 2960 | 4.11226, 2961 | 5.95694, 2962 | 5.8567, 2963 | 8.25645, 2964 | 4.10378, 2965 | 5.96138, 2966 | 5.86066, 2967 | 8.25278 2968 | ], 2969 | "baseline-speedup": 1.8183, 2970 | "baseline-ratio": 54.9966 2971 | }, 2972 | "ujson_dicts_dump_1000000": { 2973 | "fn": "dump", 2974 | "avg_serde": 4.7757835, 2975 | "serialized_size": 759753782, 2976 | "err": "", 2977 | "name": "ujson", 2978 | "dtype": "dicts", 2979 | "items": 1000000, 2980 | "avg": 2.698661, 2981 | "min": 2.693224, 2982 | "max": 2.71284, 2983 | "stdev": 0.005691, 2984 | "timings": [ 2985 | 2.69675, 2986 | 2.69429, 2987 | 2.71284, 2988 | 2.69709, 2989 | 2.69341, 2990 | 2.70419, 2991 | 2.69635, 2992 | 2.69322, 2993 | 2.69782, 2994 | 2.70065 2995 | ], 2996 | "baseline-speedup": 1.8002, 2997 | "baseline-ratio": 55.5495 2998 | }, 2999 | "ujson_dicts_load_1000000": { 3000 | "fn": "load", 3001 | "avg_serde": 4.7757835, 3002 | "serialized_size": 759753782, 3003 | "err": "", 3004 | "name": "ujson", 3005 | "dtype": "dicts", 3006 | "items": 1000000, 3007 | "avg": 6.852906, 3008 | "min": 4.434994, 3009 | "max": 9.301836, 3010 | "stdev": 1.51925, 3011 | "timings": [ 3012 | 4.43499, 3013 | 7.03652, 3014 | 6.92261, 3015 | 9.30184, 3016 | 5.16104, 3017 | 6.98756, 3018 | 6.90887, 3019 | 9.28901, 3020 | 5.33844, 3021 | 7.14818 3022 | ], 3023 | "baseline-speedup": 1.6267, 3024 | "baseline-ratio": 61.4725 3025 | }, 3026 | "cbor_dicts_dump_1000000": { 3027 | "fn": "dump", 3028 | "avg_serde": 3.8018799999999997, 3029 | "serialized_size": 372329891, 3030 | "err": "", 3031 | "name": "cbor", 3032 | "dtype": "dicts", 3033 | "items": 1000000, 3034 | "avg": 1.803696, 3035 | "min": 1.791896, 3036 | "max": 1.811921, 3037 | "stdev": 0.004981, 3038 | "timings": [ 3039 | 1.80239, 3040 | 1.7919, 3041 | 1.80203, 3042 | 1.80513, 3043 | 1.80288, 3044 | 1.81192, 3045 | 1.80451, 3046 | 1.80829, 3047 | 1.8015, 3048 | 1.80641 3049 | ], 3050 | "baseline-speedup": 2.6934, 3051 | "baseline-ratio": 37.1274 3052 | }, 3053 | "cbor_dicts_load_1000000": { 3054 | "fn": "load", 3055 | "avg_serde": 3.8018799999999997, 3056 | "serialized_size": 372329891, 3057 | "err": "", 3058 | "name": "cbor", 3059 | "dtype": "dicts", 3060 | "items": 1000000, 3061 | "avg": 5.800064, 3062 | "min": 3.805715, 3063 | "max": 7.828233, 3064 | "stdev": 0.929581, 3065 | "timings": [ 3066 | 5.5936, 3067 | 5.94077, 3068 | 5.95318, 3069 | 6.07965, 3070 | 6.20471, 3071 | 3.80572, 3072 | 5.52993, 3073 | 5.5886, 3074 | 5.47626, 3075 | 7.82823 3076 | ], 3077 | "baseline-speedup": 1.922, 3078 | "baseline-ratio": 52.0282 3079 | }, 3080 | "msgpack_dicts_dump_1000000": { 3081 | "fn": "dump", 3082 | "avg_serde": 3.2461575, 3083 | "serialized_size": 373773160, 3084 | "err": "", 3085 | "name": "msgpack", 3086 | "dtype": "dicts", 3087 | "items": 1000000, 3088 | "avg": 1.234061, 3089 | "min": 1.230471, 3090 | "max": 1.239999, 3091 | "stdev": 0.003, 3092 | "timings": [ 3093 | 1.23189, 3094 | 1.23306, 3095 | 1.23473, 3096 | 1.23139, 3097 | 1.2311, 3098 | 1.23047, 3099 | 1.24, 3100 | 1.23836, 3101 | 1.2351, 3102 | 1.23451 3103 | ], 3104 | "baseline-speedup": 3.9367, 3105 | "baseline-ratio": 25.402 3106 | }, 3107 | "msgpack_dicts_load_1000000": { 3108 | "fn": "load", 3109 | "avg_serde": 3.2461575, 3110 | "serialized_size": 373773160, 3111 | "err": "", 3112 | "name": "msgpack", 3113 | "dtype": "dicts", 3114 | "items": 1000000, 3115 | "avg": 5.258254, 3116 | "min": 2.886784, 3117 | "max": 7.710744, 3118 | "stdev": 1.514133, 3119 | "timings": [ 3120 | 2.88678, 3121 | 5.4227, 3122 | 7.69296, 3123 | 3.65779, 3124 | 5.39519, 3125 | 5.44358, 3126 | 5.3309, 3127 | 7.71074, 3128 | 3.61943, 3129 | 5.42248 3130 | ], 3131 | "baseline-speedup": 2.1201, 3132 | "baseline-ratio": 47.168 3133 | }, 3134 | "json_tuples_dump_1000000": { 3135 | "fn": "dump", 3136 | "avg_serde": 6.8868675, 3137 | "serialized_size": 662856835, 3138 | "err": "", 3139 | "name": "json", 3140 | "dtype": "tuples", 3141 | "items": 1000000, 3142 | "avg": 3.511346, 3143 | "min": 3.491279, 3144 | "max": 3.580283, 3145 | "stdev": 0.025914, 3146 | "timings": [ 3147 | 3.49899, 3148 | 3.49744, 3149 | 3.51376, 3150 | 3.50015, 3151 | 3.50611, 3152 | 3.49393, 3153 | 3.49128, 3154 | 3.49688, 3155 | 3.53465, 3156 | 3.58028 3157 | ], 3158 | "baseline-speedup": 1.0, 3159 | "baseline-ratio": 100.0 3160 | }, 3161 | "json_tuples_load_1000000": { 3162 | "fn": "load", 3163 | "avg_serde": 6.8868675, 3164 | "serialized_size": 662856835, 3165 | "err": "", 3166 | "name": "json", 3167 | "dtype": "tuples", 3168 | "items": 1000000, 3169 | "avg": 10.262389, 3170 | "min": 9.648835, 3171 | "max": 11.478771, 3172 | "stdev": 0.741599, 3173 | "timings": [ 3174 | 11.23795, 3175 | 9.88256, 3176 | 9.66262, 3177 | 11.47877, 3178 | 9.80493, 3179 | 9.88841, 3180 | 9.64884, 3181 | 11.44128, 3182 | 9.76339, 3183 | 9.81513 3184 | ], 3185 | "baseline-speedup": 1.0, 3186 | "baseline-ratio": 100.0 3187 | }, 3188 | "pickle_tuples_dump_1000000": { 3189 | "fn": "dump", 3190 | "avg_serde": 3.7241715, 3191 | "serialized_size": 367503881, 3192 | "err": "", 3193 | "name": "pickle", 3194 | "dtype": "tuples", 3195 | "items": 1000000, 3196 | "avg": 2.9905, 3197 | "min": 2.982984, 3198 | "max": 2.999481, 3199 | "stdev": 0.003898, 3200 | "timings": [ 3201 | 2.98298, 3202 | 2.99122, 3203 | 2.98963, 3204 | 2.9927, 3205 | 2.99, 3206 | 2.98996, 3207 | 2.98776, 3208 | 2.99118, 3209 | 2.99008, 3210 | 2.99948 3211 | ], 3212 | "baseline-speedup": 1.1742, 3213 | "baseline-ratio": 85.1668 3214 | }, 3215 | "pickle_tuples_load_1000000": { 3216 | "fn": "load", 3217 | "avg_serde": 3.7241715, 3218 | "serialized_size": 367503881, 3219 | "err": "", 3220 | "name": "pickle", 3221 | "dtype": "tuples", 3222 | "items": 1000000, 3223 | "avg": 4.457843, 3224 | "min": 4.019434, 3225 | "max": 5.781346, 3226 | "stdev": 0.654959, 3227 | "timings": [ 3228 | 4.31064, 3229 | 5.73431, 3230 | 4.14564, 3231 | 4.14108, 3232 | 4.01943, 3233 | 5.78135, 3234 | 4.17043, 3235 | 4.18281, 3236 | 4.05454, 3237 | 4.03821 3238 | ], 3239 | "baseline-speedup": 2.3021, 3240 | "baseline-ratio": 43.4386 3241 | }, 3242 | "ujson_tuples_dump_1000000": { 3243 | "fn": "dump", 3244 | "avg_serde": 4.0676015, 3245 | "serialized_size": 651790794, 3246 | "err": "", 3247 | "name": "ujson", 3248 | "dtype": "tuples", 3249 | "items": 1000000, 3250 | "avg": 2.312926, 3251 | "min": 2.295788, 3252 | "max": 2.320009, 3253 | "stdev": 0.006659, 3254 | "timings": [ 3255 | 2.29579, 3256 | 2.31876, 3257 | 2.3169, 3258 | 2.31006, 3259 | 2.30859, 3260 | 2.31365, 3261 | 2.31466, 3262 | 2.31357, 3263 | 2.31725, 3264 | 2.32001 3265 | ], 3266 | "baseline-speedup": 1.5181, 3267 | "baseline-ratio": 65.8701 3268 | }, 3269 | "ujson_tuples_load_1000000": { 3270 | "fn": "load", 3271 | "avg_serde": 4.0676015, 3272 | "serialized_size": 651790794, 3273 | "err": "", 3274 | "name": "ujson", 3275 | "dtype": "tuples", 3276 | "items": 1000000, 3277 | "avg": 5.822277, 3278 | "min": 5.194955, 3279 | "max": 6.97441, 3280 | "stdev": 0.73447, 3281 | "timings": [ 3282 | 5.55301, 3283 | 6.97441, 3284 | 5.38051, 3285 | 5.37733, 3286 | 5.2126, 3287 | 6.95571, 3288 | 5.35337, 3289 | 5.34704, 3290 | 5.19495, 3291 | 6.87384 3292 | ], 3293 | "baseline-speedup": 1.7626, 3294 | "baseline-ratio": 56.7341 3295 | }, 3296 | "parquet_tuples_dump_1000000": { 3297 | "fn": "dump", 3298 | "avg_serde": 2.13236, 3299 | "serialized_size": 294309649, 3300 | "err": "", 3301 | "name": "parquet", 3302 | "dtype": "tuples", 3303 | "items": 1000000, 3304 | "avg": 3.36088, 3305 | "min": 3.316075, 3306 | "max": 3.38868, 3307 | "stdev": 0.023367, 3308 | "timings": [ 3309 | 3.38868, 3310 | 3.36815, 3311 | 3.37159, 3312 | 3.38145, 3313 | 3.37777, 3314 | 3.36832, 3315 | 3.34074, 3316 | 3.31608, 3317 | 3.37051, 3318 | 3.32552 3319 | ], 3320 | "baseline-speedup": 1.0448, 3321 | "baseline-ratio": 95.7149 3322 | }, 3323 | "parquet_tuples_load_1000000": { 3324 | "fn": "load", 3325 | "avg_serde": 2.13236, 3326 | "serialized_size": 294309649, 3327 | "err": "", 3328 | "name": "parquet", 3329 | "dtype": "tuples", 3330 | "items": 1000000, 3331 | "avg": 0.90384, 3332 | "min": 0.887291, 3333 | "max": 0.922322, 3334 | "stdev": 0.013351, 3335 | "timings": [ 3336 | 0.92232, 3337 | 0.90344, 3338 | 0.88729, 3339 | 0.8883, 3340 | 0.91626, 3341 | 0.92161, 3342 | 0.89602, 3343 | 0.89076, 3344 | 0.91648, 3345 | 0.89591 3346 | ], 3347 | "baseline-speedup": 11.3542, 3348 | "baseline-ratio": 8.8073 3349 | }, 3350 | "protobuf_tuples_dump_1000000": { 3351 | "fn": "dump", 3352 | "avg_serde": 48.664047, 3353 | "serialized_size": 299458025, 3354 | "err": "", 3355 | "name": "protobuf", 3356 | "dtype": "tuples", 3357 | "items": 1000000, 3358 | "avg": 52.989597, 3359 | "min": 52.666266, 3360 | "max": 53.087056, 3361 | "stdev": 0.113119, 3362 | "timings": [ 3363 | 52.66627, 3364 | 52.96453, 3365 | 53.04668, 3366 | 53.05365, 3367 | 53.01658, 3368 | 52.99049, 3369 | 53.05757, 3370 | 53.0053, 3371 | 53.08706, 3372 | 53.00784 3373 | ], 3374 | "baseline-speedup": 0.0663, 3375 | "baseline-ratio": 1509.0964 3376 | }, 3377 | "protobuf_tuples_load_1000000": { 3378 | "fn": "load", 3379 | "avg_serde": 48.664047, 3380 | "serialized_size": 299458025, 3381 | "err": "", 3382 | "name": "protobuf", 3383 | "dtype": "tuples", 3384 | "items": 1000000, 3385 | "avg": 44.338497, 3386 | "min": 40.565922, 3387 | "max": 47.059335, 3388 | "stdev": 1.768009, 3389 | "timings": [ 3390 | 44.70547, 3391 | 44.27516, 3392 | 43.7299, 3393 | 43.75057, 3394 | 43.21539, 3395 | 47.05386, 3396 | 44.32507, 3397 | 44.7043, 3398 | 40.56592, 3399 | 47.05933 3400 | ], 3401 | "baseline-speedup": 0.2315, 3402 | "baseline-ratio": 432.0485 3403 | }, 3404 | "cbor_tuples_dump_1000000": { 3405 | "fn": "dump", 3406 | "avg_serde": 2.647685, 3407 | "serialized_size": 286359111, 3408 | "err": "", 3409 | "name": "cbor", 3410 | "dtype": "tuples", 3411 | "items": 1000000, 3412 | "avg": 1.296958, 3413 | "min": 1.292368, 3414 | "max": 1.30875, 3415 | "stdev": 0.004978, 3416 | "timings": [ 3417 | 1.30278, 3418 | 1.29903, 3419 | 1.30875, 3420 | 1.29528, 3421 | 1.29301, 3422 | 1.29287, 3423 | 1.29618, 3424 | 1.2959, 3425 | 1.29237, 3426 | 1.2934 3427 | ], 3428 | "baseline-speedup": 2.7074, 3429 | "baseline-ratio": 36.9362 3430 | }, 3431 | "cbor_tuples_load_1000000": { 3432 | "fn": "load", 3433 | "avg_serde": 2.647685, 3434 | "serialized_size": 286359111, 3435 | "err": "", 3436 | "name": "cbor", 3437 | "dtype": "tuples", 3438 | "items": 1000000, 3439 | "avg": 3.998412, 3440 | "min": 1.80986, 3441 | "max": 5.44854, 3442 | "stdev": 0.948982, 3443 | "timings": [ 3444 | 1.80986, 3445 | 3.99329, 3446 | 3.86785, 3447 | 3.83774, 3448 | 5.44854, 3449 | 3.96866, 3450 | 3.84918, 3451 | 3.82533, 3452 | 5.41825, 3453 | 3.96543 3454 | ], 3455 | "baseline-speedup": 2.5666, 3456 | "baseline-ratio": 38.9618 3457 | }, 3458 | "msgpack_tuples_dump_1000000": { 3459 | "fn": "dump", 3460 | "avg_serde": 2.5605675, 3461 | "serialized_size": 287802380, 3462 | "err": "", 3463 | "name": "msgpack", 3464 | "dtype": "tuples", 3465 | "items": 1000000, 3466 | "avg": 0.977056, 3467 | "min": 0.971208, 3468 | "max": 0.985475, 3469 | "stdev": 0.003723, 3470 | "timings": [ 3471 | 0.98548, 3472 | 0.9736, 3473 | 0.97618, 3474 | 0.97121, 3475 | 0.97921, 3476 | 0.97396, 3477 | 0.97632, 3478 | 0.97935, 3479 | 0.97731, 3480 | 0.97794 3481 | ], 3482 | "baseline-speedup": 3.5938, 3483 | "baseline-ratio": 27.8257 3484 | }, 3485 | "msgpack_tuples_load_1000000": { 3486 | "fn": "load", 3487 | "avg_serde": 2.5605675, 3488 | "serialized_size": 287802380, 3489 | "err": "", 3490 | "name": "msgpack", 3491 | "dtype": "tuples", 3492 | "items": 1000000, 3493 | "avg": 4.144079, 3494 | "min": 2.911158, 3495 | "max": 5.441267, 3496 | "stdev": 0.818595, 3497 | "timings": [ 3498 | 2.91116, 3499 | 5.3321, 3500 | 3.76793, 3501 | 3.76261, 3502 | 3.6196, 3503 | 5.21458, 3504 | 3.68903, 3505 | 5.44127, 3506 | 3.84227, 3507 | 3.86024 3508 | ], 3509 | "baseline-speedup": 2.4764, 3510 | "baseline-ratio": 40.3812 3511 | } 3512 | } --------------------------------------------------------------------------------