Re: Zeitverhalten CC2 Kategorie: CC2-Unit & Appl.Board / CC2-Station (von Thomas Ferl - 19.07.2001 7:57) | |
Als Antwort auf Zeitverhalten CC2 von Dieter - 17.07.2001 20:33
| |
Hallo Dieter, das Gerücht mit den 8ms habe ich in die Welt gesetzt. Vor dem Aufruf einer Funktion, die 8 IO-Ports abfragt, habe ich den internen Millisekunden-Zähler gespeichert und nach Beendigung geschaut, wieviel Zeit vergangen ist.Hier für jedermann nachvollziehbar: //----------- thread main //----------- { long D,Timer0; string s; int i,PortState[8]; ports.deactw(0); loop { Timer0 = system.timer(); for i=8...15 PortState[i-8] = ports.get(i); D = system.timer() - Timer0; s="T="; str.putlong(s,D); lcd.clear(); lcd.print(s,str.length(s)); } // loop } Ergebnisse: Abfrage der IO-Ports 8...15 = 8ms Abfrage der AD-Ports 0...7 = 8-9ms Da ich in einem "richtigen" Programm natürlich mit den gewonnenen Daten arbeiten muss, zB. Vergleich mit dem Status des vorherigen Loops zwecks Erkennung eines Statuswechsels usw., sind diese Werte natürlich reine Theorie. Jeder zusätzliche Befehl kostet weitere Rechenzeit. Das Problem ist nicht die Bereitstellungsgeschwindigkeit sondern, der Interpreter. Mit Assembler-Programmierung kannst Du die gut gemeinte "virtuelle Maschine" umgehen. Vielleich meldet sich mal ein "Hardcore-Programmierer" und berichtet etwas über das Zeitverhalten bei echtem Mschinenencode. Ich habe seinerzeit mit Z80-Assembler viel Zeit verbracht und bin im Grunde froh, dass es C2 gibt. Die meisten Anwendungen sind ja glücklicherweise nicht so zeitkritisch. thomas | |
Antwort schreiben Antworten: |