[MX 2004] Performance-Tipps

luke_the_duke

Erfahrenes Mitglied
Hallo zusammen!

heute mal nicht ein "Problem", sondern eine allgemeine Frage. Ich habe eine reine Flash-Page programmmiert, praktisch ohne Tweens & Co., nur mit AS, habe auch sehr auf einen sauberen Programmierstil geachtet usw. (wobei auch das individuell ist) und die Sache funktioniert auch wunderprächtig. Nun möchte ich noch ein bisschen feintunen und wollte darum mal fragen, ob es bei Flash so etwas wie die "10 goldenen Performance-Regeln" gibt, also Regeln, die man unbedingt beachten sollte, wenn man eine möglichst hohe Funktionalität bzw. Geschwindigkeit erreichen will, wie z.B. Variablen immer so definieren oder eben nicht so, ist auch sehr situationsabhängig, weiss ich auch, aber vielleicht gibt es so ein paar Grundsätze.
Wollte nur mal fragen, es tummeln sich ja hier wirklich einige Cracks

Gruss und frohes Feiern

Lukas
 
Hi,

10 goldene Regeln kann man so leicht nicht formulieren da es für jedes Flash Projekt sehr unterschiedliche Anforderungen gibt. Was nutzt dir zB die temporäre Definition von Variablen, wenn du im kompletten Projekt nur 10 benutzt ?

Am wichtigsten ist die Struktur, das was du wohl einen sauberen Programmierstil nennen würdest und Logik. Es gibt aber schon ein paar allgemeine Tipps:

Auf das LoadVars Objekt kannn man nicht häufig genung schwören. Gleich zu Beginn des Projekts ein paar definieren auch ohne die Absicht Laden oder Senden zu wollen - ein Objekt für das 'BIOS' des Films eines für das 'GUI' und eines für den Inhalt, und man ist schon sehr viel weiter. Wenn es zunächst umständlich erscheint wichtige Variablen anstatt auf _root im selbst angelegten Objekt zB _root.BIOS zu speichern, so macht sich diese Extra- Arbeit in späteren Projektphasen sehr bemerkbar, nicht nur in der Übersicht.
Man erreicht eine frühzeitige Trennnung von 'persistenten' , bedeutenden Variablen und von reinen Iteratoren und Zwischenspeichern, und hat ausserdem schon jetzt eine Abstraktion des Projekts geleistet, die später nur schwerlich zu realisieren ist.
Alle anderen Variablen sollten also mit dem Schlüsselwort 'var' als temporär und lokal deklariert werden - so spart man Speicher und bewahrt vor allem im Debugger leichter Überblick. Variablen sollten kurz sein, je kürzer die verwendeten Namen und Pfade sind, desto schneller arbeitet Flash im Vollauslastungs - Betrieb den Film ab - das ist aber unterhalb der Grenze von tausenden Variablen nicht feststellbar.
Du solltest Variablen in Deutsch benennen, einfach, weil es dann übersichtlicher wird und viel wichtiger, weil du somit von vorne herein sogenannte 'Trunctations' vermeidest, also Namensüberschneidungen mit geschützten Begriffen wie width, var, height, load, send etc.... es hat nicht nur Nachteile als Fremdsprachler AS zu programmieren, da man mit einer konsequenten deutschsprachigen Benennung eine der widerwärtigsten und schwerst auszumerzenden Fehlerquelle beseitigen kann.

Ein anderer Tip hat wenig mit Performancesteigerung aber viel mit Realität zu tun:

Teste auf minderwertigen Rechnern !

Man kann Flash outperformen, man kann sauber programmieren und man kann das tollste Ding gemacht haben - wenn es auf einem 200er Pentium zum sauberen Absturz bzw freezen des Rechners führt, ist es Mist.

Grüsse
B
 
Ansonsten kann man allgemein noch folgende Tipps geben:

- while-schleifen sind schneller als for-schleifen.
- int ( x ) ist schneller als Math.abs( x ) oder ähnliches.
- nicht unnötig oft auf Eigenschaften zufreifen
PHP:
		//lahm:
	for ( var i=0; i < myArray.length; i++ ) {...
	//schneller:
	var max
	for ( var i=0; i < max; i++ )	

	// Sofern man öfters denselben Wert errechnet, 
	//sollte man ihn in eine Variabel speichern
	// also sowas wie Math.sin(1.5) möglichst nicht mehrfach ausrechnen
- textFeld.length ist schneller als textFeld.text.length
- es "hilft" Flash wenn im Vorfeld bekannt ist wie groß ein Array ist ( var myArray = new Array(400); )
- x++ ist schneller als x+=1

Hier gibt es ne Menge interessante Vergleiche:
http://www.oddhammer.com/actionscriptperformance/set2/index.html
 

Neue Beiträge

Zurück