[ascoders] Re: [ascoders]ASBroadcaster - Bug behoben - Performanz vorhanden

  • From: "bokel" <actionscript@xxxxxxxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Sat, 19 Apr 2003 19:36:03 +0200

O ja, ich verstehe.
Hättest du ja gleich dazu schreiben können,
anstatt mich hier ins offene Messer laufen zu lassen :)

Funktioniert die alte Broadcaster-Methode
nicht, wenn man das _listeners-Array heimlich durch
eine Kopie ersetzt und die remove-Methode
auf dem Original arbeiten lässt ?

mfg r.



----- Original Message -----
From: "Holger Kohnen" <h_kohnen@xxxxxx>
To: <ascoders@xxxxxxxxxxxxx>
Sent: Saturday, April 19, 2003 7:22 PM
Subject: [ascoders] Re: [ascoders]ASBroadcaster - Bug behoben - Performanz 
vorhanden


> Einspruch
>
> Die Idee war die alte broadcastMessage-Methode
> aus Geschwindigkeitsgründen zu erhalten und das
> macht sich auch positiv bemerkbar. Daher haben
> wir auch nicht die _listener-Liste kopiert da wir
> dann ja die broadcastMessage-Methode hätten über-
> schreiben müssen.
>
> Der Boolean unterscheidet nicht zwischen zwei
> Methoden, sondern zwischen Methode und Array-
> pushen.
>
> Verunsicher einen doch nicht so, bokel....;-)
>
> mfg, Holger
>
> > Aha,
> > je nach Status benutzt ihr also die oder die
> > remove-Methode, und löscht erst nachher.
> > Das ist clever, allerdings auch langsamer
> > als die Liste vorher zu kopieren.
> >
> > Ausserdem würde ich keinen boolean dafür
> > benutzen, sondern ie betroffenen Methoden
> > direkt austauschen.
> >
> > mfg r.
> >
> >
> > ----- Original Message -----
> > From: "Holger Kohnen" <h_kohnen@xxxxxx>
> > To: <ascoders@xxxxxxxxxxxxx>
> > Sent: Saturday, April 19, 2003 6:20 PM
> > Subject: [ascoders] [ascoders]ASBroadcaster - Bug behoben - Performanz
> vorhanden
> >
> >
> > > Hi Leute,
> > >
> > > das hat mir und Carsten Müller keine Ruhe gelassen,
> > > wir haben jetzt ein interessantes Ergebniss:
> > >
> > > - On-broadcastMessage-Listener-Remove-Bug ist behoben.
> > > - Die broadcastMessage-Geschwindigkeit ist identisch.
> > > - Das Entfernen von Listenern beim senden geht über 40mal schneller.
> > >
> > > Testet das doch mal bitte, vielleicht sind wir ja auch
> > > irgendwie blind...:-)
> > >
> > > Besonders dritte Punkt ist interessant, scheint wohl an
> > > der internen Speicherwaltung zu liegen, so nach dem Motto -
> > > wenn Flash monotonere Arbeiten macht kommt es so richtig
> > > in fahrt.
> > >
> > > netten Gruß, Holger
> > >
> > >
> > > <code>
> > > o = ASBroadcaster;
> > > o.oldAddListener = o.addListener;
> > > o.oldRemoveListener = o.removeListener;
> > > o.oldBroadcastMessage = o.broadcastMessage;
> > > //
> > > o.initialize = function (pObj) {
> > >  pObj.oldAddListener = this.oldAddListener;
> > >  pObj.oldRemoveListener = this.oldRemoveListener;
> > >  pObj.oldBroadcastMessage = this.oldBroadcastMessage;
> > >  pObj.addListener = this.addListener;
> > >  pObj.removeListener = this.removeListener;
> > >  pObj.broadcastMessage = this.broadcastMessage;
> > >  pObj._listeners = new Array();
> > >  pObj.__blnSending = false;
> > >  pObj.__arrObjectsToRemove = new Array();
> > > }
> > > //
> > > o.addListener = function (pObj) {
> > >  var tmp = this._blnSending;
> > >  this._blnSending = false;
> > >  this.oldAddListener(pObj);
> > >  this._blnSending = tmp;
> > > }
> > > //
> > > o.removeListener = function (pObj) {
> > >  if (this._blnSending == false)
> > >   this.oldRemoveListener(pObj);
> > >  else
> > >   this._arrObjectsToRemove.push(pObj);
> > > }
> > > //
> > > o.broadcastMessage = function () {
> > >  this.__blnSending = true;
> > >  this.oldBroadcastMessage.apply(this, arguments);
> > >  this.__blnSending = false;
> > >  var l = this.__arrObjectsToRemove.length;
> > >  for (var i = 0; i < l; i++)
> > >   this.oldRemoveListener(this._arrObjectsToRemove[i]);
> > >  this._arrObjectsToRemove.splice(0);
> > > }
> > > </code>
> > >
> > > ------------------------------------------------------
> > > Archiv   : //www.freelists.org/archives/ascoders/
> > > Optionen : //www.freelists.org/list/ascoders
> > > ------------------------------------------------------
> > >
> >
> > ------------------------------------------------------
> > Archiv   : //www.freelists.org/archives/ascoders/
> > Optionen : //www.freelists.org/list/ascoders
> > ------------------------------------------------------
> >
>
> ------------------------------------------------------
> Archiv   : //www.freelists.org/archives/ascoders/
> Optionen : //www.freelists.org/list/ascoders
> ------------------------------------------------------
>

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: