15: Bestun forrita 1 Flashcards
Gagnlegar bestanir :
Bestanir sem þú eða þýðandinn ættu að gera óháð
örgjörva / þýðanda
Kóðaflutningur (code motion)
Minnka fjölda skipta sem útreikningur er framkvæmdur
Ef hann skilar alltaf sömu niðurstöðu
Sérstaklega hagkvæmt að flytja kóða út úr lykkju
Kóðaflutningur hjá þýðanda (-O1)
Þýðandi setur útreikning út fyrir lykkju t.d.
Aflminnkun (reduction in strength)
Skipta dýrum aðgerðum fyrir ódýrari / einfaldari aðgerðir
Hliðrun og samlagning í stað margföldunar eða deilingar
Endurnýting reiknisegða
Endurnota hluta af reiknisegðum
GCC gerir þetta með rofanum –O1
Takmarkanir á bestunarþýðendum
Má ekki valda neinni breytingu í hegðun forrits
Takmarkanir á bestunarþýðendum
Má ekki valda neinni breytingu í hegðun forrits
Hegðun sem er augljós fyrir forritara gæti verið falin af
forritunarmáli og forritunarstíl, dæmi?
gagnasvið breytu gæti verið takmarkaðra en breytutag gefur til kynna
Þegar það er vafi, þá gerir þýðandinn hvað?
verður þýðandinn að vera íhaldssamur
Mest af greiningu er aðeins gerð innan einstakra falla, afhverju ?
Greining alls forritsins er oftast of dýr
Nýrri útgáfur af GCC gera greiningu á milli falla í sömu skrá
Venjið ykkur á að
skilgreina staðværar breytur