Message136439
import json, timeit
obj = [[1,2,3]*10]*10
class writable(object):
def write(self, buf): pass
w = writable()
print('dumps: %.3f' % timeit.timeit(lambda: json.dumps(obj), number=10000))
print('dump: %.3f' % timeit.timeit(lambda: json.dump(obj,w), number=10000))
On my machine this outputs:
dumps: 0.391
dump: 4.501
I believe this is mostly caused by dump using JSONEncoder.iterencode without _one_shot=True, resulting in c_make_encoder not being used. |
|
Date |
User |
Action |
Args |
2011-05-21 13:38:06 | poq | set | recipients:
+ poq |
2011-05-21 13:38:06 | poq | set | messageid: <1305985086.83.0.259963774289.issue12134@psf.upfronthosting.co.za> |
2011-05-21 13:38:06 | poq | link | issue12134 messages |
2011-05-21 13:38:06 | poq | create | |
|