Programming | Programming theory » A hatékonyság fogalma a programozásban

Datasheet

Year, pagecount:2002, 2 page(s)

Language:Hungarian

Downloads:147

Uploaded:May 09, 2010

Size:27 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

A hatékonyság fogalma a programozásban B, Hatékonyság: Hatékonyság fogalma alatt azt értjük, hogy a program a feladatát valamilyen, vagy több szempontból gazdaságosabban végzi úgy, hogy közben a helyessége megmarad. Így a program értékét lényegesen növelhetjük. A vizsgálat szempontjai: 1./ Végrehajtási idő szerint 2./ Helyfoglalás szerint 3./ Bonyolultság szerint A gyakorlat azt bizonyítja, hogy a három szempont egymás ellen hat. Feladatunk minden esetben az, hogy megtaláljuk a feladathoz igazodó optimákis egyensúlyt. A vizsgálat irányai: I. Globális hatékonyság - az algoritmust vizsgáljuk és elemezzük a működést (agyalunk) 1./ Végrehajtási idő szerint A probléma fő forrása a ciklus, ott lehet érdemleges eredményt elérni. végrehajtási idő (tv) = egy ciklus ideje (t) * a ciklusok száma (n) Lépésszám csökkentése (n) - igyekszünk csökkenteni a ciklus végrehajtásánák számát , esetleg több részfeladatot is

megoldhatunk egy lépésben. A probléma mély elemzése szükséges Ciklus mag végrehajtási idejének csökkentése (t) - lehetőleg csak azt csináljunk a ciklusban, amit feltétlenül ott kell. Ne végezzünk oktalanul logikai vizsgálatokat, ne szervezzünk cikluson belüli elágazásokat, adatmozgatásokat ne itt végezzünk, ha nem feltétlenül szükséges. 2./ Helyfoglalás szerint A program szöveg helyigénye - általában nem sokat nyerünk. - eljárások használata - adatok előfeldolgozása, szűrése - nem kell a feleslegeset tárolni. - a kódból adatot csinálunk - a program üzeneteit szövegfájlban tároljuk. Adatok helyigénye - komoly nyereség lehet a tudatos átgondolás. - csökkentsük az adat elemeinek számát - speciális sorozatok tárolásánál használjuk ki az adatismétlődéseket, üres tárolási helyeket, használjunk mutató típusokat, és dinamikus változókat. - elemméret csökkentése - ne tároljunk kiszámítható adatsorozatokat,

adatstruktúrák átfedő információit szűrjük ki (személyi szám és születés dátuma), a hosszú, gyakran ismétlődő szöveges adatokat kódoljuk. II. Lokális hatékonyság - csak a leírt kódot vizsgáljuk, a működés megértése nem szükséges (formális szabályokat használunk) 1./ Végrehajtási idő szerint gyors műveletek használata 2*a  a+a gyors típusok használata - valós számok helyett az egészek körében az alapműveletek lényegesen gyorsabbak képletek egyszerűsítése - a kiértékelése gyorsul, különösen ha ciklusban van függvények kiküszöbölése a > sqrt(n)  a*a > n feltételvizsgálat 2./ 3./ - gyakran szükséges részkifejezések kiszámítása, tárolása változóban konstans kifejezések kiszámítása x:=1/2 * y  x:=0.5*x Helyfoglalás szerint kis helyigényű típusok részeredmények kerülése ne tároljunk kiszámíthítót Bonyolultság szerint a program átláthatóságát, megérthetőségét

befolyásolja, nem mindíg kell vele foglalkozni. a program szerkezetének bonyolultságát csökkentsük - egymásbaágyazott elágazások, ciklusok kerülése. a kifelyezés bonyolultságának csökkentése - egy értékadáskor vagy logikai vizsgálatkor a matematikai művelet leírása ne tartalmazzon több mélységben zárójelet, a számítási részeket külön értékadásban írjuk le