
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Stefan. > Der CCBAS-Compiler anderseits ist ein _Compiler_ und jeder Compiler erzeugt in der Praxis Codesegemente, die nicht effizient sind Es spielt doch überhaupt keine Rolle, ob der Code effizient ist oder nicht. Michael benötigt für seine Geschwindigkeitsmessung einfach nur eine ausreichend hohe Auflösung. Wenn die sogar ein Interpreter liefert, kann man selbst interpretiert messen. Auch bei einem Interpreter weiß man, wieviel Zeit für einen Schleifendurchlauf benötigt wird. Zum Hochzählen der Variablen sollte man aber sinnvollerweise FOR..NEXT-Schleifen benutzen. Gegebenenfalls muß man darüber nachdenken, das Interruptsystem vor der Messung auszuschalten. Ich persönlich würde für diese Aufgabe ebenfalls Assembler benutzen. Aber nicht, weil es schneller ist, sondern weil man in Assembler den Timer Input Capture-Interrupt aktivieren kann und auf diese Weise einfach und sehr präzis die Zeit zwischen zwei Flanken ermitteln lassen kann. Dieser Interrupt wird im Betriebssystem zur Auswertung des DCF-77-Signals benutzt. > ...andererseits ruft der die C-Control Betriebssystemroutinen auf, weißt Du wieviele Takte die zum Ablaufen brauchen? Der Compiler CCBAS2MC führt eine Reihe von Optimierungen durch. FOR..NEXT-Schleifen und viele Operationen mit Byte-Variablen kommen ohne Rechenstack und ohne den Aufruf von Betriebssystemroutinen aus. Davon abgesehen weiß ich selbstverständlich, viele Takte die verschiedenen Betriebssystemroutinen zum Ablauf benötigen. Das Betriebssystem ist doch ausführlich dokumentiert. Siehe C-Control-ROM-Listing im HTML-Format auf meiner Site. Die Drachenbücher "Compilerbau 1 & 2" habe ich mir übrigens auch mal gekauft. Allerdings vermute ich, daß Du trotzdem etwas mehr Ahnung vom Compilerbau hast als ich. Bisher habe ich nur den Compiler (genauer: das Compiler-Backend) CCBAS2MC veröffentlich. Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |