Skip to content
  • Damien George's avatar
    py/persistentcode: Add a qstr window to save mpy files more efficiently. · 5996eeb4
    Damien George authored
    This is an implementation of a sliding qstr window used to reduce the
    number of qstrs stored in a .mpy file.  The window size is configured to 32
    entries which takes a fixed 64 bytes (16-bits each) on the C stack when
    loading/saving a .mpy file.  It allows to remember the most recent 32 qstrs
    so they don't need to be stored again in the .mpy file.  The qstr window
    uses a simple least-recently-used mechanism to discard the least recently
    used qstr when the window overflows (similar to dictionary compression).
    This scheme only needs a single pass to save/load the .mpy file.
    
    Reduces mpy file size by about 25% with a window size of 32.
    5996eeb4