Stimmt schon, Programmierer sind halt schreibfaul, die Idee klingt gut sogar sehr gut, kann grad nicht mehr darüber nachdenken, das Gehirn streikt irgendwie, morgen gehts hoffentlich wieder...:-) grüße, Holger > 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 > ------------------------------------------------------ > > ------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------