summaryrefslogtreecommitdiffstats
path: root/ipaclient
diff options
context:
space:
mode:
authorChristian Heimes <cheimes@redhat.com>2017-02-13 09:46:39 +0100
committerMartin Basti <mbasti@redhat.com>2017-02-15 17:27:56 +0100
commit8159c2883bf66980582d1227c364df4e592bdd7e (patch)
treeeb0630cd5251e82088aec3f6c2a43fad985398ae /ipaclient
parent593ea7da9a732647052cb56c08ad367e40be3912 (diff)
downloadfreeipa-8159c2883bf66980582d1227c364df4e592bdd7e.tar.gz
freeipa-8159c2883bf66980582d1227c364df4e592bdd7e.tar.xz
freeipa-8159c2883bf66980582d1227c364df4e592bdd7e.zip
Faster JSON encoder/decoder
Improve performance of FreeIPA's JSON serializer and deserializer. * Don't indent and sort keys. Both options trigger a slow path in Python's json package. Without indention and sorting, encoding mostly happens in optimized C code. * Replace O(n) type checks with O(1) type lookup and eliminate the use of isinstance(). * Check each client capability only once for every conversion. * Use decoder's obj_hook feature to traverse the object tree once and to eliminate calls to isinstance(). Closes: https://fedorahosted.org/freeipa/ticket/6655 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipaclient')
0 files changed, 0 insertions, 0 deletions