[elektro] C optimalizálás probléma

Nemka nemka at nemka.hu
Fri Feb 10 10:52:51 CET 2012


Ha nincs ellene szóló indok, akkor használj azonos típusú változókat.
Főleg a megszakításrutinban kezelt változóknál. Pláne akkor, ha
időkritikus a feladat.

Ha nem használ(hat)sz azonos típusú változókat, akkor ne bízd a
fordítóra a castolást. Kényszerítsd.

Ha a találgatással és próbálkozással mégsem jutsz el a probléma
gyökeréig, akkor mégis vedd elő a két assembly listát.
A BASE és PC alapú címzés összehasonlítása miért okoz problémát?
Ha megcserélhető a kettő, akkor az offsetet nem változóból veszi,
tehát az assembly kódból is kinyerhető, a többi már csak összeadás.
Az így kialakuló cím ugyanoda kell mutasson (nem fizikailag, hanem
logikailag) mindkét esetben. Ha mégsem, akkor megtaláltad a hibát.


Nemka
--->    http://www.nemka.hu    <---


> 2012.02.10. 10:40 hg12345:
> Az IT egy 8 alap állapotú állapotgép, nem helyettesíthető
> konstanssal egyik része se, mert akkor nem ugyan az a kód, igy a
> hiba se jön elő, valószínüleg.

> A számlalálót egy másik számlálóval ellenörizzem?! A program a
> müködtető számlálót ellenörzi, hibás számlálás esetén a program
> tartalmmazza a hiba jelzést és a hibás értéket eldobja, ilyen
> jellegű hiba nem léphet fel, ha csak nem kódoltam rosszul.

> Valami 64-32-16 bites számkonverzió hibára gyanakodok. A O0
> esetén korrekt módon tartalmazza az elöjel vagy nulla felbővítést a
> kód, de optimalizáció esetén már "okos" program és ezeket amikor
> számára nem tünik fontosnak elhagyja, elképzelhető késöbb használva
> ezt az értéket megszükséges lehet.....

> Köszi az ötleted, a számlálót megpróbálom....



> "Balázs Bámer" <bamerbalazs at gmail.com> írta:
>>> Egy elég összetett IT kezelő ~300 soros program (más program
>>> nem szakithat bele, ez garantált) -O0 optimalizáió nélkül jól
>>> müködik, de -O3 már aperiodikus stochasztikus hibákat>
>>
> Kell egyáltalán az az O3? Ha ennyire kritikus, nem lehetne assemblyt>
> betéttel megoldani pár kényesebb rutint?>
>>
>> Milyen technikák léteznek ilyen hiba megkeresésére?>
>>
> Nem lehet az IT-ből egyes részeket kihagyni, és megnézni, mikor lép>
> föl a hiba? Pl. valami számítást elhagysz és állandóval helyettesíted>
az eredményt.>>
>>
> Esetleg valami jó felbontású számlálóval nézed, mennyi ideig fut az IT>
> egyes esetekben, így különböző optimalizálási fokokon vagy különböző>
részei nélkül.>>
>>
> Még az is elképzelhető, hogy O3-mal hibás kódot generál, míg a többivel jót.>
>>
szia: Balázs>>
>>
> ----------------------------------------->
>           elektro[-flame|-etc]

> -----------------------------------------
>           elektro[-flame|-etc] 



More information about the Elektro mailing list