Forum

Einloggen | Registrieren | RSS  

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

verfasst von Zahnlos72(R), 07.03.2023, 23:42 Uhr

» Klar, da kann man noch einiges machen:
»
» » 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.


Hallo !

Danke für Deine Hinweise.....hab´s mal nur so überflogen aber werde es dann testen....
Das mit der Schleife denke ich ist aber erforderlich, weil ja da der Dezimalwert in die Bits zerlegt wird...
Hatte vor dem If schon die ( Switch / Case mit break ) Methode.... das brachte aber nichts....
es ist die Schleife die Zeit braucht . Auch die While - Schleife wäre nicht schneller !
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.


lG



Gesamter Thread:

for-Schleife Timing ..... - Zahnlos72(R), 07.03.2023, 19:35
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