este k tym zlozenym podmienkam

Jan Waclawek konfera na efton.sk
Pátek Duben 12 10:26:50 CEST 2024


Vcera zhodou okolnosti som mal "prilezitost" sa na takych zlozenych
podmienkach vyburit, a tak by som este rad doplnil dve navzajom pribuzne,
relativne marginalne optimalizacne techniky, ktore pouzivam:

1. ak sa zlozena podmienka vypocitava casto ale meni zriedkavo, tak si ju
"predpocitavam" do pomocnej premennej (sam pre seba to volam "cache", aj
ked to nie je asi spravne z pohladu standardneho pouzitia toho slova).
T.j. namiesto
if (podmienka1 && podmienka2 && podmienka3) {}
napisem 
if (zlozenaPodmienka) {}
a vzdy ked sa meni podmienka1, podmienka2, podmienka3 tak zavolam
void ZmenaZlozenejPodmienky(void) {
  zlozenaPodmienka = podmienka1 && podmienka2 && podmienka3;
}

2. ak podmienky su bitove stavy, tak ich s oblubou skladam do bytu/wordu,
kde potom namiesto testu s && staci otestovat cely byte/word na nulu.
Na toto sa da s vyhodou vyuzit bit-banding v Cortex-M3/4 (resp. bitova
oblast v '51, bit-banding na rozhrani pamati v niektorych Kinetisoch,
apod.)

Obe tieto techniky maju pomerne zasadny nedostatok v tom, ze na prvy pohlad
"nie je vidiet" pouzitie tych jednotlivych podmienok.

wek




Další informace o konferenci Hw-list