Forum

Einloggen | Registrieren | RSS  

for-Schleife Timing ..... (Elektronik)

verfasst von Zahnlos72(R), 09.03.2023, 10:12 Uhr

» Seltsamerweise ist die Zeit abhängig vom Inhalt des Byte 00000000 ist
» schnell......00000001 ist schon merklich langsamer ! obwohl die Anzahl der
» Bits ja immer dieselbe ist.

Sorry... mein Fehler ! ....da habe ich mich anscheinend geirrt.....die Abstände sind doch unabhängig vom Byte - Wert !
Sie werden aber wohl immer von links nach rechts kleiner !

Dein Vorscchlag mit .....

» for (int g=7;g>=0;g--) {
» if(bitRead(COLOR[0][0], g)==0) {
» for (uint8_t g = 7; g >= 0; --g) {
» if ((COLOR[0][0] & ( 1 << g )) >> g) { /* ... */ } else { /* ... */ }
» }
» 1. --g statt g-- spart Arbeitsspeicher und (wenn ich mich richtig erinnere) drei CPU Zyklen.
» 2. Shift-Operator verwenden statt Methoden Aufruf spart einen Methodenaufruf... Außer wenn der Compiler die readBit-Aurufe eh inline macht, dann gewinnst lediglich » » » »schwerer lesbaren Code.
»So und wenn du wirklich schneller werden willst, dann schmeiß die Schleife weg und mach aus dem if je Bit einfach ein switch(CORLOR[0][0]) und für jede mögliche »Konstellation die in der Variablen drin stehen kann einen case-Statement (die kann man auch zusammenfassen wenn für verschiedene Bitmuster das gleiche gemacht »werden soll).
»Das mit dem prefix-Operator kannst du dir angewöhnen, das schadet nicht. Den postfix-Operator wirst du dann nur noch verwenden wenn du ihn wirklich brauchst ;-)
»Shift-Operatoren statt einer (inline) Methode würde ich Anfängern nicht empfehlen, das kann der Compiler mittlerweile besser.

...hat leider keine Besserung gebracht ....war sogar etwas langsamer !!!

!!! Das einzige was half war das Array nicht erst in der If - Schleife auszulesen sondern schon davor und in einer Variablen der Schleife zur Verfügung zu stellen. !!!


» Wie hast du die Messung
» durchgeführt?
Oszi ....


Aber vielen Dank trotzdem !



Gesamter Thread:

for-Schleife Timing ..... - Zahnlos72(R), 07.03.2023, 19:35 (Elektronik)
for-Schleife Timing ..... - bastelix(R), 07.03.2023, 22:19
for-Schleife Timing ..... - Zahnlos72(R), 07.03.2023, 23:42
for-Schleife Timing ..... - bastelix(R), 08.03.2023, 22:37
for-Schleife Timing ..... - Zahnlos72(R), 09.03.2023, 10:12
for-Schleife Timing ..... - Zahnlos72(R), 09.03.2023, 12:52