• Alexandre Vassalotti's avatar
    Make framing optional in pickle protocol 4. · 6790e5ac
    Alexandre Vassalotti authored
    This will allow us to control in the future whether to use framing or not.
    For example, we may want to turn it off for tiny pickle where it doesn't
    help.
    
    The change also improves performance slightly:
    
    ### fastpickle ###
    Min: 0.608517 -> 0.557358: 1.09x faster
    Avg: 0.798892 -> 0.694738: 1.15x faster
    Significant (t=3.45)
    Stddev: 0.17145 -> 0.12704: 1.3496x smaller
    Timeline: http://goo.gl/3xQE1J
    
    ### pickle_dict ###
    Min: 0.669920 -> 0.615271: 1.09x faster
    Avg: 0.733633 -> 0.645058: 1.14x faster
    Significant (t=5.05)
    Stddev: 0.12041 -> 0.02961: 4.0662x smaller
    Timeline: http://goo.gl/LpLSXI
    
    ### pickle_list ###
    Min: 0.397583 -> 0.368112: 1.08x faster
    Avg: 0.412784 -> 0.397223: 1.04x faster
    Significant (t=2.78)
    Stddev: 0.01518 -> 0.03653: 2.4068x larger
    Timeline: http://goo.gl/v39E59
    
    ### unpickle_list ###
    Min: 0.692935 -> 0.594870: 1.16x faster
    Avg: 0.730012 -> 0.628395: 1.16x faster
    Significant (t=17.76)
    Stddev: 0.02720 -> 0.02995: 1.1012x larger
    Timeline: http://goo.gl/2P9AEt
    
    The following not significant results are hidden, use -v to show them:
    fastunpickle.
    6790e5ac
pickletester.py 68.4 KB