30.07.2012 Aufrufe

Leistungsoptimierung für die ADOBE FLASH-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!