[elektro] A szokásos C kezdő kérdések
Móczik Gábor
pm_levlista at progzmaster.hu
Thu Jan 31 14:35:09 CET 2013
2013.01.31. 10:50 keltezéssel, SZIGETI Szabolcs írta:
> lesz az. Persze kijelentve mindezt mindenféle analízis és mérés nélkül.
> Aztán amikor nagy nehezen sikerült rábeszélni egy profilingra, akkor
> kiderült, hogy halálra optimalizálta a teljes futási idő 0,1%-ért felelős
> kódrészt, ami így 25%-kal gyorsabb lett. vagyis nyert az egész futási időn
> 0,025%-ot. És kerek szemekkel nézte, hogy volt egy függvény, amiben 50%-ot
> ment a program. Ezt pár egyszerű fogással durván ötödére lehetett faragni.
Ez jól hangzik egy PC-n, szerveren, ahol legfeljebb vársz 3 másodperccel
többet egy eredményre, de egy real-time rendszerben, mondjuk egy
mikrokontrolleres vezérlőrendszerben ez egyszerűen nem működik.
Lehet hogy egy adott interrupt csak az idő 0.1%-ában fut, de akkor
mondjuk adott igen szűk időkeret alatt valamit tenni kell. A CPU
sebessége véges, és ha a lefordított kód nem fut le ennyi idő alatt,
akkor valamit faragni kell.
Nem ritka.
> Szóval először működjön funkcionálisan jól, a kód legyen olvasható,
> hordozható, karbantartható. Aztán mérünk és megnézzük, hogy tényleg lassú
> vagy nagy-e és ha igen, akkor a mérés alapján megnézzük, hogy hol kell
> faragni. Itt jöhet aztán a bitvadászat, de rendszerint nagyon kevés esetben
> kell vadászni, primitív dolgokkal (pl. egymásba ágyazott ciklusok ki/meg
> fordítása, jobb adatszerkezet, stb.) hatalmasakat lehet nyerni. De ehhez
> mérni és elemezni kell.
Ezzel mondjuk egyetértek. Nem kell mindent optimalizálni, csak azt ami
nem felel meg, és azt is úgy, hogy minél kevésbé legyen speciális.
More information about the Elektro
mailing list