Re: Serious performance degradation

2009-03-29 Thread Igor Vaynberg
run a garbage collector and take another memory snapshot immediately
after. there are a lot of soft references in wicket.

-igor

On Sun, Mar 29, 2009 at 5:22 PM, Matej Knopp  wrote:
> Hi,
>
> On Mon, Mar 30, 2009 at 2:08 AM, dtoffe  wrote:
>>
>> Hi all,
>>
>>    I'm testing a small app about to enter in production, and I've found
>> that performance degrades seriously in a rather small amount of time, even
>> with one single session.
>>    The first problem I guess is the lack of LDMs, I underestimated its
>> importance mainly because the application is expected to have only a very
>> small amount of simultaneous sessions (it's an intranet only app), but I
>> will fix that tomorrow adding LDMs.
>
> LDMs are key point to optimize when you have heavy model.
>
>>    The app also has a refreshing behavior set to refresh every 120 seconds.
>> The main page has two small tables, one of them is loaded by editing one
>> bean in another panel, saving it to DB and refreshing the table (up to some
>> 60-80 rows).
>>    Doing a quick profiling using the app for some 30 minutes or so, I've
>> found that most of the memory is used by PropertyResolver.ObjectAndGetSetter
>> (80Mb), followed by char[] (26 Mb) and byte[] (23 Mb). Perhaps this hints to
>> some known issue or mistake in my code ?
> 80Mb of ObjectAndGetSetter seems bit weird to me. Unless you have
> really right model and PropertyResolver needs to cache lot of
> accessors.
>
> char[] might be buffers from redirect-to-buffer response, although
> 26Mb seems quite a lot. It's hard to guess without knowing more about
> the data.
>
> 23mb of byte[] might be serialized pages cache in DiskPageStore. Those
> are soft references (so they get freed if there is not enough memory)
> and also there is limited number of them so the memory usage doesn't
> grow with load.
>
> -Matej
>
>>    I will review all my code for memory leaks. Besides changing my models
>> to LDMs, is there any other common bad practice that I should be aware of,
>> any usual coding error that causes memory leaks by wrong usage of Wicket ??
>>
>> Thanks in advance,
>>
>> Daniel
>>
>> --
>> View this message in context: 
>> http://www.nabble.com/Serious-performance-degradation-tp22774430p22774430.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Serious performance degradation

2009-03-29 Thread Matej Knopp
Hi,

On Mon, Mar 30, 2009 at 2:08 AM, dtoffe  wrote:
>
> Hi all,
>
>    I'm testing a small app about to enter in production, and I've found
> that performance degrades seriously in a rather small amount of time, even
> with one single session.
>    The first problem I guess is the lack of LDMs, I underestimated its
> importance mainly because the application is expected to have only a very
> small amount of simultaneous sessions (it's an intranet only app), but I
> will fix that tomorrow adding LDMs.

LDMs are key point to optimize when you have heavy model.

>    The app also has a refreshing behavior set to refresh every 120 seconds.
> The main page has two small tables, one of them is loaded by editing one
> bean in another panel, saving it to DB and refreshing the table (up to some
> 60-80 rows).
>    Doing a quick profiling using the app for some 30 minutes or so, I've
> found that most of the memory is used by PropertyResolver.ObjectAndGetSetter
> (80Mb), followed by char[] (26 Mb) and byte[] (23 Mb). Perhaps this hints to
> some known issue or mistake in my code ?
80Mb of ObjectAndGetSetter seems bit weird to me. Unless you have
really right model and PropertyResolver needs to cache lot of
accessors.

char[] might be buffers from redirect-to-buffer response, although
26Mb seems quite a lot. It's hard to guess without knowing more about
the data.

23mb of byte[] might be serialized pages cache in DiskPageStore. Those
are soft references (so they get freed if there is not enough memory)
and also there is limited number of them so the memory usage doesn't
grow with load.

-Matej

>    I will review all my code for memory leaks. Besides changing my models
> to LDMs, is there any other common bad practice that I should be aware of,
> any usual coding error that causes memory leaks by wrong usage of Wicket ??
>
> Thanks in advance,
>
> Daniel
>
> --
> View this message in context: 
> http://www.nabble.com/Serious-performance-degradation-tp22774430p22774430.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Serious performance degradation

2009-03-29 Thread dtoffe

Hi all,

I'm testing a small app about to enter in production, and I've found
that performance degrades seriously in a rather small amount of time, even
with one single session.
The first problem I guess is the lack of LDMs, I underestimated its
importance mainly because the application is expected to have only a very
small amount of simultaneous sessions (it's an intranet only app), but I
will fix that tomorrow adding LDMs.
The app also has a refreshing behavior set to refresh every 120 seconds.
The main page has two small tables, one of them is loaded by editing one
bean in another panel, saving it to DB and refreshing the table (up to some
60-80 rows).
Doing a quick profiling using the app for some 30 minutes or so, I've
found that most of the memory is used by PropertyResolver.ObjectAndGetSetter
(80Mb), followed by char[] (26 Mb) and byte[] (23 Mb). Perhaps this hints to
some known issue or mistake in my code ?
I will review all my code for memory leaks. Besides changing my models
to LDMs, is there any other common bad practice that I should be aware of,
any usual coding error that causes memory leaks by wrong usage of Wicket ??

Thanks in advance,

Daniel

-- 
View this message in context: 
http://www.nabble.com/Serious-performance-degradation-tp22774430p22774430.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org