[Gelistirici] Smash that stack harder aka Pardus 2008 C(XX)FLAGS

Onur Küçük onur at pardus.org.tr
3 Şub 2008 Paz 21:35:35 EET


> > [1] http://cekirdek.pardus.org.tr/~onur/code/exectime_count.c
> 
> Ben burda neden performans artışı oluyor anlamadım,
>     char buf[128];
>     veya char buf[11]
>      veya sadece
>     return strncmp("1234567890", "1234", 4);
> 
> ile hep aynı sonuçları alıyorum süre olarak. Tam süre her denemede
> biraz dalgalanıyor,
> ama minimumları aynı.
> gcc -O2 -D_FORTIFY_SOURCE=2 ile.
> 
> Merat ettim birşey mi kaçırıyorum, neden buf[128] daha hızlı çalışsın
> ki, ortada bellek/cpu hızını ilgilendiren bir kıstas yok. Ne kadar
> bellek kullanılırsa kullanılsın strcpy 11, strncmp 4 karakter sonra
> çalışmasını bitiriyor.

 gcc 4.3 ile -fstack-protector açarak deneyin

 Tahminim buf u 128 allocate etmek yerine 11 allocate edip bırakıyor.
Şu anda inceleyemiyorum, derlediğim sistem elimin altında değil ama
bilen varsa beri gelsin (ya da gcc -S çıktısını kıyaslasın :)

-- 
 Onur Küçük                                      Knowledge speaks,   
 <onur.--.-.pardus.org.tr>                       but wisdom listens  




Gelistirici mesaj listesiyle ilgili daha fazla bilgi