8159c28 Faster JSON encoder/decoder

2 files Authored by cheimes 7 years ago, Committed by mbasti 7 years ago,
    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>
    
        
file modified
+132 -79
file modified
+3 -5