Created
July 17, 2017 19:49
-
-
Save lovesh/91026887d18e803cbc2a10d013a20ba9 to your computer and use it in GitHub Desktop.
Comparison of serialisation and de-serialisation times on some plenum message
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from random import shuffle | |
import ujson | |
import msgpack | |
import time | |
data = [ | |
{"op":"REPLY","result":{"txnTime":1500296923,"rootHash":"ChEG5bpqvdKYhyoqSziJ5r7qtyRtkmjQYzErEW2DpuqC","type":"buy","auditPath":["3uAnG8h5rS5nwviEj49YTje8GA8tS19RsUP3MvSju9gG"],"signature":"5RGoVb8Rsc4H1jn2FZdueBAZ3kMzwJhEzLUjxtMhzXSBnQBuE438uj8Bg1b5eP82EYNKVNwFSarztQoDszid6n8w","reqId":1500316722698678,"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","seqNo":33,"amount":10}}, | |
{"op":"REPLY","result":{"txnTime":1500296923,"rootHash":"FMWErPC9tCMusWjwfgLkhKoibQbwWWoCYWjFj9TTmHuj","type":"buy","auditPath":["AbBrT7ScWCPdKkCue5SyWx8jCvUFwgDPBSumNtGmuLYG","7qB28FcEsR93j3CrmYpAG5r1JJZAVrNHWtMKcYHspgkY","7CGsMw6jBaq8Cm5dfb1BmoV1LHk4kVjRYV83r4B1xMw9"],"signature":"3xuFE9kEo8L991Z4ztLuwgyeUTTbTW6dauKLcMbbeFffK1hRj6ywTGz3m5nhzEk5LqQQsfXTd7rq6hHchnpUSxzg","reqId":1500316722693789,"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","seqNo":29,"amount":28}}, | |
{"op":"REPLY","result":{"txnTime":1500296923,"rootHash":"Dj2VKTBEH63ahcRpqPB8k29bxTaHtdJrdbk7MEwbrTjM","type":"buy","auditPath":["77DYvpZTXHrWsEBtU2MybJZQXTZFsTJJqoZzEk4dSycR","AbBrT7ScWCPdKkCue5SyWx8jCvUFwgDPBSumNtGmuLYG","7qB28FcEsR93j3CrmYpAG5r1JJZAVrNHWtMKcYHspgkY","7CGsMw6jBaq8Cm5dfb1BmoV1LHk4kVjRYV83r4B1xMw9"],"signature":"4GhxbWsWgTqtFjAxCkwskqjBwF4bGfJ4V8gaXhx3jmwJvpChJ5oumJ9RKugHpbq4RBUqieyPNkmhox4NcMHShF8n","reqId":1500316722694706,"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","seqNo":30,"amount":35}}, | |
{"op":"REPLY","result":{"txnTime":1500296923,"rootHash":"9FM9JwMPVP8rvhPkFW65vFporkzDx6r8394aL4qR4xgH","type":"buy","auditPath":["BJdwyGSh4Ffrq46Vkx2zjfD2Ciq8ab2QhfBjqzCPgjfX","AbBrT7ScWCPdKkCue5SyWx8jCvUFwgDPBSumNtGmuLYG","7qB28FcEsR93j3CrmYpAG5r1JJZAVrNHWtMKcYHspgkY","7CGsMw6jBaq8Cm5dfb1BmoV1LHk4kVjRYV83r4B1xMw9"],"signature":"2orRPLNeWZ35AT3bA7m6BEkqNwByL3eY3RoicaQ1rtE2n1vFDDNoq4BSdnkWJ3QmS3NSC8Gahb8i3Tj8ZL6fCNzz","reqId":1500316722695722,"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","seqNo":31,"amount":79}}, | |
{"op":"REPLY","result":{"txnTime":1500296923,"rootHash":"3uAnG8h5rS5nwviEj49YTje8GA8tS19RsUP3MvSju9gG","type":"buy","auditPath":["7VovLxmif9nWpGKEwx2jt17oW28sszbf1Z9TtHfAJ3Yq","BJdwyGSh4Ffrq46Vkx2zjfD2Ciq8ab2QhfBjqzCPgjfX","AbBrT7ScWCPdKkCue5SyWx8jCvUFwgDPBSumNtGmuLYG","7qB28FcEsR93j3CrmYpAG5r1JJZAVrNHWtMKcYHspgkY","7CGsMw6jBaq8Cm5dfb1BmoV1LHk4kVjRYV83r4B1xMw9"],"signature":"4MjNkx2ZaEP7XabFV14Sfn4LdTtfHnsVEUU1yUzy2K126CzCVsV1nYisqL1yDPaNtcnkmSEk7mqs861Q4RopNhTC","reqId":1500316722696802,"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","seqNo":32,"amount":21}}, | |
{'ledgerId': 1, 'viewNo': 1, 'reqIdr': [('4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316722693789), ('4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316722694706), ('4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316722695722), ('4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316722696802), ('4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316722698678)], 'ppSeqNo': 1, 'instId': 0, 'txnRootHash': 'ChEG5bpqvdKYhyoqSziJ5r7qtyRtkmjQYzErEW2DpuqC', 'ppTime': 1500296923, 'stateRootHash': '2E5dNPuSQUwbN6mY5DMrgFU6yw13j7fer7LarJbczNU9'}, | |
{'ledgerId': 1, 'viewNo': 0, 'reqIdr': [['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316712898040], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316712899257], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316712900157], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316712901183], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316712901876]], 'ppSeqNo': 1, 'instId': 0, 'discarded': 5, 'digest': '5eef6f910c2ca329887b371b6df74ffdfb1404428df0ea56c02fd0b7906535de', 'txnRootHash': '6FTqNFC7o3ft7dYV8z9UL8wvAYdcSXgMsGhF8BU3JTgy', 'ppTime': 1500296913, 'stateRootHash': 'ATC7APuKUK4oSDJ7XNwa6dYQLCNkraysBjri3pBqJw44'}, | |
{'ledgerId': 1, 'viewNo': 0, 'reqIdr': [['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316714508846], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316714509606], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316714510308], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316714511018], ['4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 1500316714511702]], 'ppSeqNo': 2, 'instId': 0, 'discarded': 5, 'digest': '0630d48b65e32f46f212542bd43ba0ed67b4c3c66596546608bff148d2294770', 'txnRootHash': '2iYqZHH8sdRdpxjXzjqo27RxefkPNQN4zbBqCDPjha1S', 'ppTime': 1500296915, 'stateRootHash': '2KNeGhNTomS4Kin4oFSQhyaVakEJed1SKPiVEDRaAgqt'}, | |
{'viewNo': 0, 'digest': 'e8cc0a81530811e5de3fd1914a6616539f0aae2f8d37efbcfecb3e89c7430c86', 'ppSeqNo': 3, 'instId': 1, 'txnRootHash': None, 'ppTime': 1500296916, 'stateRootHash': None}, | |
{'viewNo': 0, 'digest': 'e8cc0a81530811e5de3fd1914a6616539f0aae2f8d37efbcfecb3e89c7430c86', 'ppSeqNo': 3, 'instId': 1, 'txnRootHash': None, 'ppTime': 1500296916, 'stateRootHash': None}, | |
{'viewNo': 0, 'digest': 'e8cc0a81530811e5de3fd1914a6616539f0aae2f8d37efbcfecb3e89c7430c86', 'ppSeqNo': 3, 'instId': 1, 'txnRootHash': None, 'ppTime': 1500296916, 'stateRootHash': None}, | |
{'instId': 1, 'viewNo': 0, 'ppSeqNo': 3}, | |
{'instId': 1, 'viewNo': 1, 'ppSeqNo': 4}, | |
{'instId': 1, 'viewNo': 0, 'ppSeqNo': 6}, | |
{'messages': ['{"instId":0,"op":"COMMIT","viewNo":1,"ppSeqNo":1}', '{"instId":1,"op":"COMMIT","viewNo":1,"ppSeqNo":1}'], 'signature': None}, | |
{'messages': ['{"instId":0,"op":"COMMIT","viewNo":0,"ppSeqNo":3}', '{"instId":1,"op":"COMMIT","viewNo":0,"ppSeqNo":3}'], 'signature': None}, | |
{'messages': ['{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"3xuFE9kEo8L991Z4ztLuwgyeUTTbTW6dauKLcMbbeFffK1hRj6ywTGz3m5nhzEk5LqQQsfXTd7rq6hHchnpUSxzg","reqId":1500316722693789,"operation":{"type":"buy","amount":28}}', '{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"4GhxbWsWgTqtFjAxCkwskqjBwF4bGfJ4V8gaXhx3jmwJvpChJ5oumJ9RKugHpbq4RBUqieyPNkmhox4NcMHShF8n","reqId":1500316722694706,"operation":{"type":"buy","amount":35}}', '{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"2orRPLNeWZ35AT3bA7m6BEkqNwByL3eY3RoicaQ1rtE2n1vFDDNoq4BSdnkWJ3QmS3NSC8Gahb8i3Tj8ZL6fCNzz","reqId":1500316722695722,"operation":{"type":"buy","amount":79}}', '{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"4MjNkx2ZaEP7XabFV14Sfn4LdTtfHnsVEUU1yUzy2K126CzCVsV1nYisqL1yDPaNtcnkmSEk7mqs861Q4RopNhTC","reqId":1500316722696802,"operation":{"type":"buy","amount":21}}', '{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"5RGoVb8Rsc4H1jn2FZdueBAZ3kMzwJhEzLUjxtMhzXSBnQBuE438uj8Bg1b5eP82EYNKVNwFSarztQoDszid6n8w","reqId":1500316722698678,"operation":{"type":"buy","amount":10}}'], 'signature': None}, | |
{'messages': ['{"op":"PROPAGATE","senderClient":"L\\/xaho0d+\\/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np","request":{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"3xuFE9kEo8L991Z4ztLuwgyeUTTbTW6dauKLcMbbeFffK1hRj6ywTGz3m5nhzEk5LqQQsfXTd7rq6hHchnpUSxzg","reqId":1500316722693789,"operation":{"type":"buy","amount":28}}}', '{"op":"PROPAGATE","senderClient":"L\\/xaho0d+\\/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np","request":{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"4GhxbWsWgTqtFjAxCkwskqjBwF4bGfJ4V8gaXhx3jmwJvpChJ5oumJ9RKugHpbq4RBUqieyPNkmhox4NcMHShF8n","reqId":1500316722694706,"operation":{"type":"buy","amount":35}}}', '{"op":"PROPAGATE","senderClient":"L\\/xaho0d+\\/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np","request":{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"2orRPLNeWZ35AT3bA7m6BEkqNwByL3eY3RoicaQ1rtE2n1vFDDNoq4BSdnkWJ3QmS3NSC8Gahb8i3Tj8ZL6fCNzz","reqId":1500316722695722,"operation":{"type":"buy","amount":79}}}', '{"op":"PROPAGATE","senderClient":"L\\/xaho0d+\\/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np","request":{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"4MjNkx2ZaEP7XabFV14Sfn4LdTtfHnsVEUU1yUzy2K126CzCVsV1nYisqL1yDPaNtcnkmSEk7mqs861Q4RopNhTC","reqId":1500316722696802,"operation":{"type":"buy","amount":21}}}', '{"op":"PROPAGATE","senderClient":"L\\/xaho0d+\\/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np","request":{"identifier":"4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ","signature":"5RGoVb8Rsc4H1jn2FZdueBAZ3kMzwJhEzLUjxtMhzXSBnQBuE438uj8Bg1b5eP82EYNKVNwFSarztQoDszid6n8w","reqId":1500316722698678,"operation":{"type":"buy","amount":10}}}'], 'signature': None}, | |
{'op': 'PROPAGATE', 'senderClient': 'L/xaho0d+/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np', 'request': {'identifier': '4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 'signature': '5RGoVb8Rsc4H1jn2FZdueBAZ3kMzwJhEzLUjxtMhzXSBnQBuE438uj8Bg1b5eP82EYNKVNwFSarztQoDszid6n8w', 'reqId': 1500316722698678, 'operation': {'type': 'buy', 'amount': 10}}}, | |
{"op":"VIEW_CHANGE_DONE","ledgerInfo":[[0,4,"8bGVVnkP4VgErUTCYNEAru2HwGcGwMHzHWjqnyiXUa1P"],[1,8,"3ktxCq9H3wSY8sudPAdZWjppmZbb6rLtBjWkE2ixuzzg"]],"viewNo":0,"name":"Alpha"}, | |
{'senderClient': 'L/xaho0d+/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np', 'request': {'identifier': '4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 'signature': '3GvA8KJtnAzNgdsY5FVByvYmtMu4AiDNhgFjjH6qz46SmAtonR3t3QKWrXVdK7WxtAs7ZnuFYp33x7VGnorVhHr7', 'reqId': 1500316717621088, 'operation': {'type': 'buy', 'amount': 46}}}, | |
{'senderClient': 'L/xaho0d+/YQXd(Vba.s.B(t#BL]l=Y}?PaY$6np', 'request': {'identifier': '4AdS22kC7xzb4bcqg9JATuCfAMNcQYcZa1u5eWzs6cSJ', 'signature': 'h75ou4KFwFAa16oTEk7Ct1c3NjX4jozCgLuLwUEp6GNm3iRUUW62bnaGEiJzGfPxod6PJN7Rshs6vZHRpvqoLZB', 'reqId': 1500316717621837, 'operation': {'type': 'buy', 'amount': 56}}} | |
] | |
data = data * 10000 | |
shuffle(data) | |
serz_uj = [] | |
start = time.perf_counter() | |
for d in data: | |
serz_uj.append(ujson.dumps(d)) | |
end = time.perf_counter() | |
print('Time to serialise(ujson) {} is {}'.format(len(data), end-start)) | |
start = time.perf_counter() | |
for s in serz_uj: | |
ujson.loads(s) | |
end = time.perf_counter() | |
print('Time to deserialise(ujson) {} is {}'.format(len(serz_uj), end-start)) | |
# Free up memory | |
del serz_uj | |
shuffle(data) | |
serz_mp = [] | |
start = time.perf_counter() | |
for d in data: | |
serz_mp.append(msgpack.packb(d)) | |
end = time.perf_counter() | |
print('Time to serialise(msgpack) {} is {}'.format(len(data), end-start)) | |
start = time.perf_counter() | |
for s in serz_mp: | |
msgpack.unpackb(s) | |
end = time.perf_counter() | |
print('Time to deserialise(msgpack) {} is {}'.format(len(serz_mp), end-start)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Results from a few runs: