C optimalizalas
Mikó Imre
imre.miko at siemens.com
Fri Oct 28 11:53:09 CEST 2005
Hello,
Igazabol nem ertem ennek az if-nek mi ertelme van:
if(cfg.out_retrigger){
settimer(TMR_MONOSTABLE,cfg.out_type);
cfg.hangup_status=ACTIVE;
}else{
settimer(TMR_MONOSTABLE,cfg.out_type);
cfg.hangup_status=ACTIVE;
}
Ezt szerintem siman kioptimalizalja, hiszen mindket aga
azonos. A lenyeg szerintem ott van, hogy a
cfg.hangup_status=ACTIVE;
a vegere kerul. Lehet, hogy van masik fuggvenyed, is aminek
ez a vegere kerul. A Cross Call-nak ez a kedvezobb.
Mi van ha ezt irod:
if(!cfg.out_type){
PORT3_OC1B=1;
}
else{
settimer(TMR_MONOSTABLE,cfg.out_type);
}
cfg.hangup_status=ACTIVE;
Ja es mindent bekapcsolsz, min meretre az nem feltetlen adja a min meretet.
En kiserleteztem, neha van olyan opcio, ami miatt megis nagyobb lesz a kod.
Persze ez nagyon fugg a tenyleges programtol.
Van itt egy progi, ami full size, + az enabled optimalizacional mindent
bepipalva 3932 byte.
Ugyanez, ha kiveszem a Code motiont, es minden mas valtozatlan, akkor meg
3842.
Udv
Imre
-----Original Message-----
From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
Of Fuzesi Arnold
Sent: 2005.október 27. 21:15
To: elektro at tesla.hu; Retro at lists.tmp.hu
Subject: C optimalizalas
Belefutottam egy jopofa dologba:
Az alabbi jocskan _rovidebb_ kodot eredmenyez:
if(!cfg.out_type){
PORT3_OC1B=1;
cfg.hangup_status=ACTIVE;
}
else{
if(cfg.out_retrigger){
settimer(TMR_MONOSTABLE,cfg.out_type);
cfg.hangup_status=ACTIVE;
}else{
settimer(TMR_MONOSTABLE,cfg.out_type);
cfg.hangup_status=ACTIVE;
}
}
mint ez:
cfg.hangup_status=ACTIVE;
if(!cfg.out_type){
PORT3_OC1B=1;
}
else{
settimer(TMR_MONOSTABLE,cfg.out_type);
}
Elvben funkcionalisan megegyeznek.
Csak egy jopofa pelda akart lenni, hogy forditok mennyire maskepp
gondolkodnak mint az ember, és bizonyos komplexitas felett mennyire nincs
eselyünk.
Azert lett rovidebb mert tök mashol hasznaltam azonos kodreszletet(ket),
amit a cross-call optimalizacio megtalalt, es csinalt egy par kis közös
fuggvenyt
Nezegettem a kodot, tele van cross-call hivassal... Nagyon ugyesen
megtalalja a kozos kodreszeket. Ott ahol nekem fel sem tűnne/
lustaságból/átláthatóság miatt nem kezdenék függvényhívást írni.
Arnold
-----------------------------------
Szponzorunk: http://tonerbolt.hu/
More information about the Elektro
mailing list