W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2009

Re: Mutation events replacement

From: João Eiras <joaoe@opera.com>
Date: Thu, 04 Jun 2009 18:02:43 +0200
To: "Boris Zbarsky" <bzbarsky@mit.edu>
Cc: "Jonas Sicking" <jonas@sicking.cc>, "Webapps WG" <public-webapps@w3.org>
Message-ID: <op.uu0b6tlc2q99of@id-c0981>
On Thu, 04 Jun 2009 17:53:31 +0200, Boris Zbarsky <bzbarsky@mit.edu> wrote:

> João Eiras wrote:
>> The overhead of comparing the previous with the new value inside the
>> engine is a fragment of the overhead of calling an ecmascript callback
>> and doing the same comparison in ecmascript.
>
> For a given operation that has a callback listening, yes.  But most
> operations do not have a callback listening, as it happens.

You are thinking along the following algorithm

if new_value != old_value then
   foreach listener in listeners
     call listener

I'm thinking in the following

if has_listeners
   if new_value != old_value then
     foreach listener in listeners
       call listener

So, unless there are listeners (which is a very simple instruction to evaluate), there is penalty in checking whatever needs to be checked.
And this is what UAs do, considering there is currently a big visible performance tradeoff when one adds no-op listeners (yes, event capturing/bubbling also affects it)


-- 

João Eiras
Core Developer, Opera Software ASA, http://www.opera.com/
Received on Thursday, 4 June 2009 16:03:29 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:31 GMT