Skip to content
  • Jean Boussier's avatar
    b8f0dc59
    rb_provide_feature: Prevent $LOADED_FEATURES from being copied · b8f0dc59
    Jean Boussier authored
    
    
    [Bug #18599]
    
    `vm->loaded_features` and `vm->loaded_features_snapshot` both share the
    same root. When a feature is pushed into `loaded_features`, the sharing
    is broken and `loaded_features` is copied.
    
    So an application requiring 1000 files, will allocate 1000 arrays of
    increasing size, which is very wasteful.
    
    To avoid this, we first clear the snapshot, so that `loaded_features`
    can directly be pushed into.
    
    Co-Authored-By: default avatarPeter Zhu <peter.zhu@shopify.com>
    b8f0dc59
    rb_provide_feature: Prevent $LOADED_FEATURES from being copied
    Jean Boussier authored
    
    
    [Bug #18599]
    
    `vm->loaded_features` and `vm->loaded_features_snapshot` both share the
    same root. When a feature is pushed into `loaded_features`, the sharing
    is broken and `loaded_features` is copied.
    
    So an application requiring 1000 files, will allocate 1000 arrays of
    increasing size, which is very wasteful.
    
    To avoid this, we first clear the snapshot, so that `loaded_features`
    can directly be pushed into.
    
    Co-Authored-By: default avatarPeter Zhu <peter.zhu@shopify.com>
Loading