Eigenschaften
|
Maschine in Software
|
| |
|
Flexibilität: Instrumentierung, Debugging, Tracing, Logging
|
|
Flexibilität: Portierbarkeit, Erweiterbarkeit
|
| |
Virtuelle Maschinen
|
JVM, LLVM, Pascal P-Code, LISP, TeX, PostScript, ...
|
| |
inkrementelle SW-Entwicklung
|
edit -> execute Zyklus
|
NICHT |
edit -> compile -> link -> execute
|
| |
|
Geschwindigkeit des ausgeführten Programms?
|
| |
|
JVM (in C): 20 mal langsamer als gleichwertiges C-Programm
|
| |
Effizienz
|
von Interpretierern
|
| |
? |
Wo entsteht der Overhead?
|
| |
Verhältnis
|
Zeit für die Kontrollschleife / Zeit für die eigentliche Operation
|
| |
Kontrollschleife
|
1. |
Instruktion holen
|
2. |
Instruktion dekodieren
|
3. |
Operanden holen
|
4. |
Operation ausführen
|
5. |
Ergebnisse speichern
|
6. |
Programmzähler fortschalten
|
| |
|
Einfache Operationen -> großer Overhead
|
|
Komplexe Operationen -> kleiner Overhead
|
| |
? |
Effizienz JVM?
|
? |
Effizienz Perl?
|
? |
Effizienz bash?
|
? |
Effizienz SQL?
|
T-Diagramm
|
grafische Darstellung eines Interpretieres
bei der Beschreibung von Portierungen
|