Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Koja se for petlja izvrsava brze?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Koja se for petlja izvrsava brze?

[ Pregleda: 1982 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zarkocgyus
Bar

Član broj: 102691
Poruke: 121
79.143.100.*



+2 Profil

icon Koja se for petlja izvrsava brze?11.05.2008. u 16:17 - pre 152 meseci
Cao svima imam sledece pitanje da li se for petja u prvom primeru izvrsava brze ili je to isto?

Code:
class some_class
{
public:
        int x[50];
        int y[50];
};

void some_function()
{
 some_class instance;
 for (int i=0;i<50; i++)
      {
        instance.x[i]=i;
        instance.y[i]=i;
      }
}

ili

void some_function()
{
 some_class instance;

for (int i=0;i<50; i++)
        instance.x=i;

for (int i=0;i<50; i++)
        instance.y=i;

}



Pozdrav.
Hvala.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4882
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+628 Profil

icon Re: Koja se for petlja izvrsava brze?11.05.2008. u 17:59 - pre 152 meseci
Pogledaj recimo link Optimization of Computer Programs in C i prouci sekciju LOOP UNROLLING.

Otprilike isto to bi mogao i sam da uradis rucno (ako kompajler nije dovoljno inteligentan i sam ne sredi to isto za tebe). Poenta je da se postigne sto manje ispitivanja "da li je dosegnut uslov za kraj petlje" i da se umesto toga ide na lineran kod. To ce neznatno uvecati kod ali i brzinu.

Teoretski, prvi kod ce biti brzi jer ima samo jedno uvodenje "i" na steku i upola manje ispitivanja kraja petlje.

P.S.
Zaboravio si "indeks od i" u drugom primeru.

EDIT:
http://en.wikipedia.org/wiki/Loop_unrolling


[Ovu poruku je menjao X Files dana 11.05.2008. u 19:28 GMT+1]
 
Odgovor na temu

zarkocgyus
Bar

Član broj: 102691
Poruke: 121
79.143.100.*



+2 Profil

icon Re: Koja se for petlja izvrsava brze?11.05.2008. u 19:45 - pre 152 meseci
Ok hvala, sad mi je dosta jasnije.
Hvala.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Koja se for petlja izvrsava brze?

[ Pregleda: 1982 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.