Re: Cayenne performance degrades over time

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Wed Jun 22 2005 - 15:13:07 EDT

  • Next message: Holger Hoffstätte: "Re: Cayenne performance degrades over time"

    Paul,

    Cache settings have effect on the shared cache in a multiuser app. For a
    single session DataContext (or rather its ObjectStore) has no upper limit
    on the number of cached objects as it is designed to have a shorter life
    span.

    So a more realistic performance test would actually discard a DataContext
    and create a new one after a few operations (how many is "few" depends on
    your expected usage patterns).

    FYI: Here is the stack structure (default is level 2):
    http://objectstyle.org/cayenne/userguide/design/caching.html

    Andrus

    > Hi Andrus,
    >
    > I'm seeing behaviour in my app using Cayenne, where it runs slower and
    > slower
    > the longer the application runs without a restart. I suspect that it will
    > eventually run out of memory. Upon restart, performance starts out high
    > again.
    >
    > I wrote a very simple test application to rule out any of my custom code.
    > It
    > simply registers a new objects with the DataContext, sets a property, and
    > calls commitChanges. The test app prints out the elapsed time for every
    > 1000
    > iterations. The results are here:
    >
    > http://www.buzzsurf.com/java/cayenne/results.txt
    >
    > If you want to run the simple test application yourself, it's here:
    >
    > http://www.buzzsurf.com/java/cayenne/CayennePerfTest.zip
    >
    > As you can see, performance degrades linearly over time. It seems like
    > DataContext is caching a pointer to every object created, despite my cache
    > settings?? I've been playing with the "Max Number of Objects" setting in
    > the
    > Modeler, but different settings seem to have no effect.
    >
    > -Paul
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Jun 22 2005 - 15:13:09 EDT