Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-04-2005, 10:32   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
(allgemeine Frage) Was frißt Performance? Wie verbessert man Performance?

ich hab hier vor einiger Zeit mal einen Thread gesehen, der umfassend und allgemein darauf eingegangen ist, aber leider finde ich den nicht mehr.

ich hab einen 2,6Ghz Rechner, und meine Seite läuft bei mir zwar ruckelfrei und flüssig, aber die CPU-Auslastung ist immer so um 70%. Hab auch schon einige Beschwerden wegen der Performance gehört (weiß nicht ob alle gerechtfertigt sind, weil die Seite bewußt keine Übergänge hat, die in weniger als 1Sek fertig sind).

Die Seite läuft mit 22 BpS. Das Auge sieht ja eh nicht mehr, und wenn ich die Framerate erhöhe, dann muß der Computer nur noch mehr rechnen und es ruckelt, richtig?

Ich hab einige Sachen probiert:
1. die meisten onEnterFrame Events auf setInterval umgestellt, die immer mit clearInterval gelöscht werden, wenn sie nicht gebraucht werden. Das hat wohl EIN WENIG die Performance verbessert. Aber nicht viel.
2. hab fast alle restlichen onEnterFrame Events (in denen wird nur eine 2KB Grafik gedreht, und einem Punkt bzw. der Maus angenähert) komplett rausgenommen. Kein Effekt.
3. ich hatte .jpg Grafiken mit Masken(z.T. sehr komplizierte Formen) versehen (hatte gerade kein Photoshop), die hab ich nun gegen .png bilder ausgetauscht. Da hatte ich mir mehr versprochen, fast kein Effekt.

Ich weiß gerade nicht mehr was ich da noch verbessern soll. Wer den anderen Thread findet, bitte gebt mir den Link. Oder hier nochmal sowas reinschreiben...
Danke
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 30-04-2005, 11:38   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
Flash 8 - Codename 8Ball
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 30-04-2005, 17:03   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
ne, den meinte ich nicht.

und mit "Was frißt Performance?" meinte ich nicht solche Sachen, wie daß 1000 MCs mehr Rechenleistung brauchen als 10 MCs, das kann ich mir selber denken.
__________________
EDV = Ende Der Vernunft

Geändert von hmpf (30-04-2005 um 17:05 Uhr)
hmpf ist offline   Mit Zitat antworten
Alt 30-04-2005, 18:56   #4 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
dann solltest hier im forum ein wenig suchen... denn das problem ist so alt wie die sache selbst.. und das forum ist voll davon...
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 30-04-2005, 20:08   #5 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
tja hmpf,
grundsätzlich hast Du ja schon das wichtigste angesprochen, was in flash direkt Rechnerleistung fordert...
enterFrames und komplizierte Masken
...was noch fehlt sind halt das 'verzichten' auf Transparenzen, und der Einsatz von Bitmaps statt Vektoren...
erstmal zur Analyse Deiner bisherigen 'Arbeiten':
Zitat:
Zitat von hmpf
1. die meisten onEnterFrame Events auf setInterval umgestellt, die immer mit clearInterval gelöscht werden, wenn sie nicht gebraucht werden. Das hat wohl EIN WENIG die Performance verbessert. Aber nicht viel.
...das ist schon mal spitze gedacht, aber solange der 'Interval' läuft ist er ja auch nicht besser als ein 'enterFrame'... der Gewinn ist halt in erster Linie durch 'clearInterval' zu erklären...
Zitat:
2. hab fast alle restlichen onEnterFrame Events (in denen wird nur eine 2KB Grafik gedreht, und einem Punkt bzw. der Maus angenähert) komplett rausgenommen. Kein Effekt.
...vermutlich ein 'kleiner' mc eigentlich 'das Thema', deshalb mehr nachher...
Zitat:
3. ich hatte .jpg Grafiken mit Masken(z.T. sehr komplizierte Formen) versehen (hatte gerade kein Photoshop), die hab ich nun gegen .png bilder ausgetauscht. Da hatte ich mir mehr versprochen, fast kein Effekt.
...ich glaube, daß flash 'nicht rechteckige' pngs intern in nichts anderes als jpgs mit masken verwandelt, deshalb ist hier 'kein Effekt' logisch (und auch so mancher Farbunterschied zwischen original-png und png in Flash)
...jetzt zu den 'noch fehlenden':
-(Teil-)Tranparente Objekte sind performancekiller, nicht nur in Flash sondern überall, wenn Du viele solche Objekte hast, solltest du versuchen das zu minimeren (einiges bringen dürfte dann schon _visible=false statt _alpha=0), eventuell durch Einzelbildanimation statt alpatweening wenn der Hintergrund uni ist ( macht dann halt die Datei wesentlich grösser, aber das imusst dann halt Du abwägen...)
- flash muss beim Animieren einer Vektorfläche mindesten drei Punkte berechnen (halt beim Dreieck, je 'unförmiger' um so mehr), bei einem Bitmap sind es aber immer 2 Punkte (die 'boundingBox') den Rest der 'Arbeit' mach der Rechner praktisch direkt...
...soo und nun 'das Thema':
....die Performacebremse überhaupt ist in Wirklichkeit nicht actionscript an und für sich, eigentlich ginge da auch noch was (sh. asBroadcaster), aber alles was Du da an Millisekunden rausholen kannst ist wieder weg, wenn das Objekt, was flash gerade tweent/intervalt/enterFramet ziemlich gross ist, ein Objekt, genau (oder fast) so gross wie der Bildschirm, mit as animiert bringt noch jeden Rechner zum Ruckeln...
...noch einmal potenziert wird das Problem, wenn dieses Objekt auch noch 'über den Monitor hinausragen würde', dagegen hilft nur verkleinern, noch nicht einmal unbedingt die fla, es reicht wenn die swf nur kleiner innerhalb der html angezeigt wird....
...um es mal mit überspitzt zu sagen, 10 grosse mc's verbrauchen mehr Performance als 1000 kleine...

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (30-04-2005 um 20:17 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 01-05-2005, 13:14   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
danke für deine ausführliche Antwort.

1. die CPU-Auslastung verändert sich während setInterval läuft und nachdem clearInterval nicht. Dann kann ich davon ausgehen, daß die Funktion nicht so eine große Auswirkung hat?

2. ja, ist wie gesagt eine Minigrafik mit Maske

3. ich kann mir nicht vorstellen, daß Flash aus teiltransparenten .png .jpg+Maske macht. Ich hab die (insgesamt 4, 13KB bis 25KB) .png Bilder nämlich mit Transparenzverlauf gemacht, und es sieht auch im exportierten .swf noch hübsch aus. Mit Maske wäre das ja wie ein .gif, also Transparenz 0% ODER 100%. Naja, auch wenn es die Performance nicht verbessert hat, sieht es immerhin besser aus. Der Hintergrund ist nämlich nicht UNI und so haben die Bilder eine schöne weiche Kante.
Ansonsten gibt es so gut wie keine Vektorgrafiken (nur Punkte mit Transparenzverlauf), und keine Tweenings. _alpha auch nicht(nur bei den Vektorpunkten, die ohnehin schon transparent sind).
Allerdings werden bis zu 18 Linien zwischen MCs mit lineTo() oder curveTo() berechnet... das verbraucht sicher auch einiges, aber kann es das sein? Ich hab schon soviele Flashfilme gesehen, wo sehr komplexe Formen mit diesen Funktionen dargestellt wurden.

@Scrawer
wenn dich ein Thema nervt, dann sieh doch einfach nicht rein und kommentiere nicht. hab wohl gesucht, aber nichts gutes gefunden.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 01-05-2005, 13:25   #7 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
@hmpf... nerven nicht... aber deine antwort... von wegen das kann ich mir selber denke ist ja nicht gerade von der feinen art....

das es hier im forum zu dem thema nix gibt halte ich eher für ein gerücht sorry
ich glaube ich alleine habe hier in den letzten 4 jahren ein halbes buch zu dem thema hinterlassen...
aber finde das nicht weiter schlimm da ein regelfall....

ps.: suchen -> performance -> 500 hits (es sei zu erwähnen das forum bricht bei mehr als 500 hits ab)
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (01-05-2005 um 15:02 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 01-05-2005, 14:41   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Zitat:
Zitat von Scrawer
@hmpf... nerven nicht... aber deine antwort... von wegen das kann ich mir selber denke ist ja nicht gerade von der feinen art....
dachte mir später auch schon, daß man das falsch verstehen kann wenn man will. vielleicht sollte man in Foren leichte "Unwirschheiten" einfach überlesen?
Dein Link fand ich auch nicht die feine Art. Da er nicht wirklich ne Antwort enthielt hab ich da auch nur "stell nicht so blöde Fragen" rausgelesen.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 01-05-2005, 15:27   #9 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
..irgendwie glaub ich hast Du nicht zuende gelesen...
Zitat:
Zitat von hmpf
danke für deine ausführliche Antwort.

1. die CPU-Auslastung verändert sich während setInterval läuft und nachdem clearInterval nicht. Dann kann ich davon ausgehen, daß die Funktion nicht so eine große Auswirkung hat?
...natürlich ist nach einem clearInterval der Prozessor weniger ausgelastet, wenn Du keinen messbaren Unterschied bei der CPU-Auslastung erkennen kannst, belegt das nur, daß das problem nicht direkt im Code zu suchen ist, sondern....sh. den letzten Absatz meines vorherigen Beitrages...

Zitat:
Zitat von hmpf
2. ja, ist wie gesagt eine Minigrafik mit Maske
...tja dann, den letzten Absatz meines vorherigen Beitrages lesen...

Zitat:
Zitat von hmpf
3. ich kann mir nicht vorstellen, daß Flash aus teiltransparenten .png .jpg+Maske macht. Ich hab die (insgesamt 4, 13KB bis 25KB) .png Bilder nämlich mit Transparenzverlauf gemacht, und es sieht auch im exportierten .swf noch hübsch aus. Mit Maske wäre das ja wie ein .gif, also Transparenz 0% ODER 100%. ...
.... wie gesagt in dem Bereich vermute ich nur, allerdings wenn das so ist wie ich mir das vorstelle, dann arbeitet flash da halt mit mehereren Kopien der Bilder und mit mehreren Masken auf jeden Fall sollte das für flash eigentlich keinen unteschied machen ob Du Dein Bild jetzt als 'maskiertes' png oder als einfaches jpg einfügst, daß Du dann innerhalb von Flash maskierst...in jedem Fall etwas, was Die performance belastet transparenzen egal wie oder wo hergestellt drücken kräftig auf die cpu-Bremse... (zweitletzer Absatz meines vorherigen threads...)
Zitat:
Zitat von hmpf
....(nur Punkte mit Transparenzverlauf), und keine Tweenings. _alpha auch nicht(nur bei den Vektorpunkten, die ohnehin schon transparent sind).
was denn jetzt...., punkte oder Flächen mit transparenzverlauf, und transparenz belastet immer egal ob alpa jetzt 99 oder 0% ist (sh.....)
Zitat:
Allerdings werden bis zu 18 Linien zwischen MCs mit lineTo() oder curveTo() berechnet... das verbraucht sicher auch einiges, aber kann es das sein? Ich hab schon soviele Flashfilme gesehen, wo sehr komplexe Formen mit diesen Funktionen dargestellt wurden.
...ich hab das schon mit wesentich mehr Linien ohne Probleme gemacht(sogar mit beginFill und swapDepths im onEnterFrame), wenn die Flächen nicht zu gross werden (sh. letzten Absatz....) macht das überhaupt keine Probleme

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 01-05-2005, 18:18   #10 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
zum punkt movieclip draw klasse... und maske muss ich sagen... das flash extreme leistungs- probleme bekommt wenn sich ein vector weit außerhalb der maske befindet... das ganze geht exponential im verhältnis performance/koordinaten es ist vor allem nicht ganz nachvollziehbar warum... ist aber so...

diese erfahrung musste ich bei einem projekt machen wo ich bei einer map engine fahrzeug routen nach gps hotspots einzeichnen musste...

die einzige lösung für das ganze ist polygone line clipping, ich habe es letzt endlich mit dem cohen sutherland algorithms umgesetzt...
das löst das problem

das theme wurde hier im forum auch schon öfter behandelt.. einfach ein wenig suchen... bzw. googeln
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (01-05-2005 um 18:32 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 01-05-2005, 18:34   #11 (permalink)
=)
 
Benutzerbild von dante
 
Registriert seit: Jun 2003
Beiträge: 499
Post

zeig doch mal deine seite!
__________________
x 600.6
y 123.3
dante ist offline   Mit Zitat antworten
Alt 01-05-2005, 21:20   #12 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Zitat:
Zitat von Alois
..irgendwie glaub ich hast Du nicht zuende gelesen...

was denn jetzt...., punkte oder Flächen mit transparenzverlauf, und transparenz belastet immer egal ob alpa jetzt 99 oder 0% ist (sh.....)
entschuldigung: es sind runde Flächen, mit radialem Transparenzverlauf (aber so klein, daß man sie als Punkt bezeichnen kann)
und doch, ich hab zuende gelesen. Meine Objekte sind aber alle klein und bewegen sich nur im sichtbaren Bereich/Bildschirm.
Ich hatte außerdem .jpg+Maske gegen .png ausgetauscht. Da im .png selber ja Transparenz ist, brauche ich da keine Maske mehr. Und wenn Flash ein .png (was ja Transparenz von 0% bis 100% hat) in viele .jpg+Maske umwandelt (was dann ja etwa 100 mal gemacht werden müsste) würde ein .png den Rechner doch viel mehr belasten, als EIN .jpg+Maske? Fände ich zumindest logisch. Aber ich kann mir nicht vorstellen, daß es so läuft.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 02-05-2005, 07:42   #13 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
Zitat:
entschuldigung: es sind runde Flächen, mit radialem Transparenzverlauf (aber so klein, daß man sie als Punkt bezeichnen kann)
und doch, ich hab zuende gelesen. Meine Objekte sind aber alle klein und bewegen sich nur im sichtbaren Bereich/Bildschirm.
bei vektoren spielt es keine rolle wie weit auseinander die punkte sind es geht nur um die anzahl der vectoren die haben direkten einfluss auf die performance.... da macht es von der performance her keinen unterschied ob die 0.5 px oder 100 px auseinander sind... das ist ja auch ein grund dogma der ganzen vectoren welt....... daher weniger vector nodes == weniger rechenleistung von nöten


also etwas solltest du hilfe die dir hier geboten wird schon hinterfragen bzw. denken..... denn wenn sinngemäß immer die antwort kommt, wenn dir jemand tipps gibt.. weiss ich eh, habe ich eh schon alles gemacht... frage ich mich wozu das posting hier?
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (02-05-2005 um 07:43 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 02-05-2005, 20:22   #14 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Zitat:
Zitat von Scrawer
also etwas solltest du hilfe die dir hier geboten wird schon hinterfragen bzw. denken..... denn wenn sinngemäß immer die antwort kommt, wenn dir jemand tipps gibt.. weiss ich eh, habe ich eh schon alles gemacht... frage ich mich wozu das posting hier?
Weiß gerade nicht was das soll. Du beziehst dich wohl einzig auf meine Äußerung, daß ich mir denken kann, daß 1000 MCs rechenintensiver sind als 10MCs? Nach der Sache wie Flash mit transparenten .png umgeht hab ich nicht gefragt, ist aber trotzdem interessant zu wissen. Und da hab ich mir eben auch Gedanken gemacht. Ist doch nicht verboten, wenn man eine Frage gestellt hat, aus der sich weitere Dinge ergeben?
Ich finde es nicht besonders sinnvoll den Thread jetzt auf sowas zu reduzieren.

Und ich würde schon vermuten, daß es nicht dasselbe ist, wenn eine große Vektorfläche mit Transparenzverlauf oder eine kleine über ein Bitmap bewegt werden. Denn bei der großen Vektorgrafik sind ja mehr Pixel der Bitmap durch die Transparenz der Vektorgrafik betroffen.

Ich wollte eher solche Dinge erfahren (hat mir inzwischen jemand anders erzählt) daß es z.B. performanter ist, wenn man alle Scripts, die ständig ausgeführt werden sollen in EINEN onEnterFrame Event schreibt. Oder, wie ich inzwischen woanders gelesen habe, es besser sein kann Vektoren gegen Bitmaps auszutauschen, weil Vekoren wohl auch ohne Tweening in jedem Frame neu berechnet werden.

Wenn du keinen Bock auf diesen Thread hast, dann antworte doch einfach nicht.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 02-05-2005, 21:38   #15 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
...das mit Bitmaps statt Vektoren hatten wir schon:
Zitat:
Zitat von Alois
... und der Einsatz von Bitmaps statt Vektoren...
...auch wenn die Erklärung, die Du gefunden hast eine andere (eher falsche) ist...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele