Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [riena-dev] GenerationalListenerList

Hi Elias, Stefan

I assume that reflecting to the fact that we will have a lot of nodes -each with it's own ListenerLists- and of cause a bunch of Marker notifications (not only Errors and Mandatory) I would expect an explosion of freshly created ListenerLists. Even, if for a single Marker change this will happen 420 times (ouch!). So a reuse of that lists instead of a new creation will boost anyway.

But on the other Hand - is it necessary, that we access the list so frequently for just one Marker change? Would't it be much more effective to avoid redundant access to the lists thru suppress redundant events? Why are there so many Marker changed events flying around? Most of them redundant. Check that out. I think a good place to boost performance will be a good concept to avoid redundant and unnecessary events (in general, not only for markers). 
Fire an event only once at the correct time. I guess that inside the framework, we often throw events at the wrong place/time just to workaround some sync or lifecycle issues.

My 2ct,
Stefan


Am 01.07.2010 um 07:14 schrieb Stefan Liebig:

>  Hi Elias,
> 
> No problem - they are already clipped. ;-)
> Independent of any profiling/measurements it is/was a fun project. Just 
> to explore if there other solutions.
> 
> However, profiling one of our example applications showed e.g. that the 
> two listener lists within the NavigationNode were asked about 420 times 
> for their iterator when switching the error markers on to off.
> Of course we should also ask the question here: are all those 
> iterations/notifications necessary?!
> 
> Tschüß,
> Stefan
> 
> 
> On 30.06.2010 23:44, Elias Volanakis wrote:
>> Hi Stefan,
>> 
>> I don't want to clip your wings, but I still wonder: how much do we
>> gain when examined with a profiler? My gut feeling is that the VM is
>> pretty good with garbage collection and the lists are relatively
>> small...
>> 
>> Cheers,
>> Elias.
>> 
>> On Wed, Jun 30, 2010 at 5:46 AM, Stefan Liebig
>> <Stefan.Liebig@xxxxxxxxxxxx>  wrote:
>>>  Hi,
>>> 
>>> In the last few weeks while we were doing a few performance optimizations I
>>> saw that we very often had the case (e.g. NavigationNode) that there was a
>>> list (e.g. LinkedList) keeping track of the listeners. In the case of
>>> notifying all the listeners, a copy of the list was created to be used by
>>> the iterator. This was done to avoid modification exceptions because the
>>> listeners could add or remove listeners.
>>> I was thinking about a solution that would avoid creating copies. And so the
>>> GenerationalListenerList was born.
>>> It is in CVS now but not yet used. It is still in a very rough form but
>>> usable. A few test cases exist but yet not covering everything.
>>> 
>>> If you are interested - have a look at it and let me know what you are
>>> thinking.
>>> 
>>> Tschüß,
>>> Stefan
>>> 
>>> 
>>> -------------------------------------------------------------
>>> compeople AG
>>> Untermainanlage 8
>>> 60329 Frankfurt/Main
>>> fon: +49 (0) 69 / 27 22 18 0
>>> fax: +49 (0) 69 / 27 22 18 22
>>> web: http://www.compeople.de/
>>> 
>>> Vorstand: Jürgen Wiesmaier
>>> Aufsichtsratsvorsitzender: Christian Glanz
>>> 
>>> Sitz der Gesellschaft: Frankfurt/Main
>>> Handelsregister Frankfurt HRB 56759
>>> Ust-Ident.-Nr: DE207665352
>>> -------------------------------------------------------------
>>> _______________________________________________
>>> riena-dev mailing list
>>> riena-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/riena-dev
>>> 
>> 
>> 
> 
> _______________________________________________
> riena-dev mailing list
> riena-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/riena-dev



Back to the top