Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />
Renderleistung<br />
Asynchrone Operationen<br />
Geben Sie der asynchronen Version von Operationen den Vorzug gegenüber synchronen Versionen, falls möglich.<br />
Synchrone Operationen werden ausgeführt, sobald der Code <strong>die</strong>s befiehlt, und der Code wird erst dann fortgesetzt,<br />
wenn <strong>die</strong> Operationen abgeschlossen sind. Deshalb werden sie in der Anwendungscodephase der Bildschleife<br />
ausgeführt. Wenn eine synchrone Operation zu lange dauert, dehnt sie <strong>die</strong> Größe der Bildschleife aus, wodurch <strong>die</strong><br />
Anzeige stehenbleiben („einfrieren“) oder stocken kann.<br />
Wenn der Code eine asynchrone Operation ausführt, muss <strong>die</strong>se nicht notwendigerweise sofort ausgeführt werden.<br />
Ihr Code und weiterer Anwendungscode im aktuellen Ausführungs-Thread werden weiterhin ausgeführt. Die Laufzeit<br />
führt <strong>die</strong> Operation so bald wie möglich aus und versucht dabei, Probleme beim Rendern zu vermeiden. In einigen<br />
Fällen erfolgt <strong>die</strong> Ausführung im Hintergrund und nicht als Teil der Bildschleife der Laufzeitumgebung. Wenn <strong>die</strong><br />
Operation abgeschlossen ist, setzt <strong>die</strong> Laufzeitumgebung ein Ereignis ab und Ihr Code kann einen Listener <strong>für</strong> <strong>die</strong>ses<br />
Ereignis verwenden, um weitere Aufgaben auszuführen.<br />
Asynchrone Operationen sind geplant und werden aufgeteilt, um Renderingprobleme zu vermeiden. Folglich ist es<br />
mit asynchronen Operationen viel einfacher, eine reagierende Anwendung zu behalten. Weitere Informationen finden<br />
Sie unter „Wahrgenommene Leistung und tatsächliche Leistung“ auf Seite 3.<br />
Die asynchrone Ausführung von Operationen erfordert jedoch einige Ressourcen. Die tatsächliche Ausführungszeit<br />
kann <strong>für</strong> asynchrone Operationen länger sein, besonders bei Operationen, <strong>die</strong> nur wenig Zeit erfordern.<br />
In der Laufzeitumgebung sind viele Operationen von Natur aus synchron oder asynchron, sodass Sie nicht wählen<br />
können, wie sie ausgeführt werden. In Adobe AIR gibt es jedoch drei Arten von Operationen, <strong>für</strong> <strong>die</strong> Sie zwischen<br />
synchroner und asynchroner Ausführung wählen können:<br />
Operationen der File- und FileStream-Klasse<br />
Viele Operationen der File-Klasse können synchron oder asynchron ausgeführt werden. Die Methoden zum<br />
Kopieren oder Löschen von Dateien und Ordnern sowie zum Auflisten von Verzeichnisinhalten gibt es zum<br />
Beispiel jeweils in einer asynchronen Version. Bei <strong>die</strong>sen Methoden steht das Suffix „Async“ hinter dem Namen<br />
der asynchronen Version. Um zum Beispiel eine Datei asynchron zu löschen, rufen Sie <strong>die</strong><br />
File.deleteFileAsync()-Methode anstatt der File.deleteFile()-Methode auf.<br />
Wenn Sie ein FileStream-Objekt zum Lesen aus einer Datei oder zum Schreiben in eine Datei verwenden, bestimmt<br />
<strong>die</strong> Art, wie das FileStream-Objekt geöffnet wird, ob <strong>die</strong> Operationen asynchron ausgeführt werden. Verwenden<br />
Sie <strong>die</strong> FileStream.openAsync()-Methode <strong>für</strong> asynchrone Operationen. Das Schreiben der Daten erfolgt<br />
asynchron. Daten werden in Blöcken geschrieben, sodass <strong>die</strong> Daten jeweils portionsweise verfügbar sind. Im<br />
Gegensatz dazu liest das FileStream-Objekt im synchronen Modus <strong>die</strong> gesamte Datei, bevor <strong>die</strong> Codeausführung<br />
fortgesetzt wird.<br />
Lokale SQL-Datenbankoperationen<br />
Beim Arbeiten mit einer lokalen SQL-Datenbank werden alle Operationen, <strong>die</strong> durch ein SQLConnection-Objekt<br />
ausgeführt werden, entweder im synchronen oder asynchronen Modus ausgeführt. Um festzulegen, dass<br />
Operationen asynchron ausgeführt werden, öffnen Sie <strong>die</strong> Verbindung zur Datenbank mit der<br />
SQLConnection.openAsync()-Methode statt mit der SQLConnection.open()-Methode. Wenn<br />
Datenbankoperationen asynchron ausgeführt werden, laufen sie im Hintergrund. Die Datenbankengine wird nicht<br />
in der Laufzeitbildschleife ausgeführt, sodass es durch Datenbankoperationen sehr wahrscheinlich nicht zu<br />
Renderingproblemen kommt.<br />
Informationen zu weiteren Strategien zur Leistungsverbesserung mit lokalen SQL-Datenbanken finden Sie unter<br />
„SQL-Datenbankleistung“ auf Seite 91.<br />
Letzte Aktualisierung 9.5.2012<br />
77