Im Sommersemester 2004 galt es, wie schon viele Jahre davor, im Rahmen der Übung Übersetzerbau einen codeerzeugenden Compiler zu schreiben und zu optimieren. Ich möchte hier ein paar der von mir eingesetzten naheliegenden und weniger naheliegenden Tricks vorstellen.
Motivation | |
---|---|
Die Rechner und CPUs werden immer schneller, wozu also Code optimieren? Ganz einfach: Damit von der gewonnenen Geschwindigkeit auch etwas übrig bleibt! Dinge, wie eine supercoole Benutzeroberfläche a la Luna oder Aqua fressen im wesentlichen die ganze CPU-Zeit moderner Prozessoren, seltsames Prozessmanagement tut sein übriges, leistungsmäßig in der Vergangenheit zu bleiben. Unpassende Algorithmen, versteckte sequential Scans beispielsweise tun ihr übriges, um Hardwareherstellern ein Zubrot zu sichern. Für ausgefeilte Optimierungstricks gibt es eigene Übungen, ich möchte deshalb hier ein paar andere, pragmatische Tips vorstellen, die teilweise ziemlich an der Oberfläche bleiben und dennoch einiges bringen. |
Die Metrik | |
---|---|
Wir haben in Übersetzerbau ein klares Ziel: Die Anzahl der Assembler-Instruktionen reduzieren! Welche Ziele könnte es sonst noch geben? Nun, beispielsweise Laufzeiteffizienz. Ein Netzwerkzugriff ist langsamer als ein Festplattenzugriff, dieser wiederum langsamer als Speicherzugriff, dieser langsamer als Registerzugriff, und so weiter. Der Einfachheit halber beschränken wir uns bei Übersetzerbau aber, wie geschrieben, auf die Anzahl der ausgeführten Operationen. |
Comments - Make a comment |
The comments are owned by the poster. We are not responsible for its content.
|
AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki
Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread
Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread
Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread