Funktionalitäten
... [ Seminar Programmiersprachen und Sprachsysteme ] ... [ Google's Dart ] ...
[ Inhaltsverzeichnis >> ] ...
Übersicht: Funktionalitäten
Snapshots
Snapshots ist eine Besonderheit von Dart. Sie ermöglicht es die Dart Programme viel schneller zu starten. Das ist beim Browsern von großer Bedeutung, da der reload-button fast wie ein "Compile"-button funktioniert.
Jedes Mal den kompletten Dart Quellcode zu (neu) interpretieren kann viel Zeit kosten. Um das nicht machen zu müssen, würden Snapshots entwickelt.
Beim Tests mit einer Web App mit 54.000 Zeilen Dart Quellcode ohne Snapshot dauerte das starten 640ms. Mit einen Snapshot nur 60ms! Durchschnittlich steigert sich also die Startgeschwindigkeit um das 10-fache.
Diese Funktionalität wird z.B. für die Libraries benutzt.
Ein Snapshot wird mit der Dart VM erstellt mit der Option "--generate-script-snapshot". Dabei wird der Dart Quellcode bis kurz vor dem Machinencode interpretiert und als ein Token-Stream in Binärformat gespeichert.
Die erstellte Datei wird dann von der Dart VM wie ein Dart Quellcode benutzt (nur dass das Interpretieren fast wegfällt).
Momentan funktioniert das nur auf der Server-seite. Auf der Client-seite soll der Snapshot automatisch erstellt werden wenn die Seite zum ersten Mal geladen wird.
Beim zweiten Aufruf der Dart App, wird der erstellte Snapshot aus dem Browser Cache geladen.
Beispiel (Server-seite):
Erstellen: dart --generate-script-snapshot=HalloDart.ss HalloDart.dart
Benutzen: dart HalloDart.ss
Runtime Modes
Die Dart VM kann in 2 verschiedenen Runtime Modes laufen:
Production mode
Der Produktions Modus ist für die Performance ausgelegt. Dieser Modus ignoriert die Statischen Typen. Das ist also so als wenn alles mit "var" typisiert wäre. Es unterscheidet sich hier also nicht groß von JavaScript.
Diesen Modus sollte man benutzen, wenn man mit der App Entwicklung fertig ist.
Der Produktions Modus ist der Standard Modus der VM.
Checked mode
In diesen Modus werden die Statischen Typen in Betracht gezogen. Die VM fügt Asserts in das Programm die eine Excetion schmeißen, wenn die Typen nicht übereinstimmen.
Die Typüberprüfung sorgt für weniger Fehler im Quellcode aber auch für schlechtere Performance. Dieser Modus eignet sich also sehr gut für die Entwicklungs Phase.
... [ Seminar Programmiersprachen und Sprachsysteme ] ... [ Google's Dart ] ...
[ Inhaltsverzeichnis >> ] ...