#311 sfcb memory footprint for large schemas too high

Performance
closed-fixed
sfcb (1090)
3
2006-01-10
2005-12-20
No

In case of large classSchema files, the memory
consumption of the class provider is too high, as the
entire class schema is loaded into memory.

Discussion

  • Viktor Mihajlovski

    Logged In: YES
    user_id=1198711

    Fix by a3schuur:

    Added caching ClassProviderGz.c, optionally accepting
    compressed classSchemas files.
    This provider does not keep complete classSchemas file in
    memory but uses a cache instead. Cache limit is currently
    set to a maximum of 16 classes. When reaching this limit the
    least recently used class is removed from the cache. All
    class retrieval goes through the cache except for
    enumerateClasses operations, which causes enumerateClasses
    operation to take longer as usual but prevents useless
    flushing of cache contents.

    classProviderGz does not support createClass, modifyClass
    and deleteClass operations.

    classProviderGz can handle compressed (zipped) classSchemas
    files as wel as non-zipped files. Zipping should be done
    using the gzip program. The class provider looks for either
    classSchemas or classSchemas.gz files.

    Regisstation is as follows:

    [$ClassProvider$]
    provider: ClassProvider
    location: sfcClassProviderGz
    type: class method
    unload: never

     
  • Viktor Mihajlovski

    • status: open --> pending-fixed
     
  • Viktor Mihajlovski

    • status: pending-fixed --> open-accepted
     
  • Viktor Mihajlovski

    Logged In: YES
    user_id=1198711

    The caching class provider seems to have a memory leak.
    Needs to be verified.

     
  • Anonymous - 2006-01-10
    • status: open-accepted --> closed-fixed
     
  • Anonymous - 2006-01-10

    Logged In: YES
    user_id=230251

    Fixed memory leak in constClass::release()
    Used calloc instead of malloc when creating repository
    control structure
    changed cache size from 2 to 10

     

Log in to post a comment.