[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