Bei der dynamischen Optimierung handelt es sich um eine Optimierungstechnik, die das Laufzeitverhalten von Software während der Ausführung erheblich verbessert.
Hierbei wird unter anderem die Tatsache ausgenutzt, dass die Werte bestimmter Variablen eines Programms zwar vor Ausführung des Programms nicht bekannt sind, aber für eine ganze Zeit lang während des Ablaufs des Programms konstant sind. Wird also während der Ausführung eines Programms erkannt, dass eine Variable doch eher eine Konstante zu sein scheint, so kann das Programm so kompiliert werden, als wäre die Variable tatsächlich eine Konstante. Diese kompilierte Form ist dann oft schneller als eine kompilierte Form des Programms, in dem eine Variable als variabel angesehen wird. Diese kompilierte Form kann dann so lange ablaufen, bis sich der Wert der Variablen wieder ändert.
Dynamische Optimierung ist derzeit nur innerhalb von virtuellen Maschinen bekannt, da die virtuelle Maschine diejenige ist, die erkennen muss, dass der Wert einer Variablen konstant ist, um dann die Neukompilierung des Codes vorzunehmen.
Siehe auch
- HotSpot – Virtual Machine von SUN mit Dynamischer Optimierung
Literatur
- Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compiler. Principles, Techniques and Tools. ISBN 0-201-10194-7 (Das Dragon Book)
- M. Arnold, S.J. Fink, D. Grove, M. Hind, P.F. Sweeney: A Survey of Adaptive Optimization in Virtual Machines. In: Proceedings of the IEEE. Band 93, Nr. 2, 2005, S. 449–466, doi:10.1109/JPROC.2004.840305.
Weblinks
- HotSpot Glossar – Glossar zu Techniken der dynamischen Optimierung (Java HotSpot lastig)