Compress Python Object in Memory

前端 未结 3 1268
萌比男神i
萌比男神i 2021-01-31 21:36

Most tutorials on compressing a file in Python involve immediately writing that file to disk with no intervening compressed python object. I want to know how to pickle and then

相关标签:
3条回答
  • 2021-01-31 22:16

    I use this to save memory in one place:

    import cPickle
    import zlib
    
    # Compress:
    compressed = zlib.compress(cPickle.dumps(obj))
    
    # Get it back:
    obj = cPickle.loads(zlib.decompress(compressed))
    

    If obj has references to a number of small objects, this can reduce the amount of memory used by a lot. A lot of small objects in Python add up because of per-object memory overhead as well as memory fragmentation.

    0 讨论(0)
  • 2021-01-31 22:20

    Batteries included.

    >>> zlib.compress(pickle.dumps([42]))
    'x\x9c\xd3\xc8)0\xe0\xf241\xe2J\xd4\x03\x00\x10A\x02\x87'
    
    0 讨论(0)
  • 2021-01-31 22:24
    bz2.compress(pickle.dumps(some_object))
    
    0 讨论(0)
提交回复
热议问题