From: Onur Küçük (onur@kablonet.com.tr)
Date: Sun 13 May 2007 - 04:52:08 EEST
> ic ice for loop'lari kullanirken diyelimki 100 donguye 1000 donguluk
> ikitane, hangisini disarda hangisini icerde kullanmak performans
> acisindan daha avantajli?
Hangi dilde ?
BASH kullanýyorsanýz ana döngünün küçük olmasý daha hýzlý olur.
Python kullanýyorsanýz çok az farkla ana döngünün büyük olmasý daha
hýzlý olur.
C kullanýyorsanýz derleyiciniz de akýllýysa pek fazla performans
farký olmaz. Daha da akýllandýrýp (man gcc) performansla
oynayabilirsiniz.
vs.
Ama bunlarýn pek bir önemi yoktur. Önemli olan o döngülerin içinde ne
yaptýðýnýz, nerelere veri taþýdýðýnýz vs. dir.
Basit testler için time komutunu kullanýn, ciddi istatistikler içinse
profiling yapmayý öðrenip kendi testlerinizi yapmanýzda fayda var.
> performansla ilgili bir baska soru:
> herhangi bir kod blogunu fonsiyon olarak cagirmak yada blogu direk
> main icine yazmak arasinda performans acisindan cok fark varmi?
> herhangi bir fonkison cagirmanin temel maliyeti (cpu clock cycle
> sayisi) acisindan nedir? bu maliyet neye gore nasil degisir?
Çaðýrma þeklinize göre deðiþir ama temelde bir kaç cycle. Basit bir C
kodu yazýp "gcc -S" ile assmebly ye çevirtip inceleyin. Önemli olan bir
iki cycle deðil, o fonksiyonu düzgün kullanýp kullanmadýðýnýzdýr (bütün
veri havada mý uçuþuyor yoksa pointer lar düzgün kullanýlýyor mu vs.).
Bunun yanýnda herþeyi main e yazarsanýz kodun okunabilirliði,
bakýmýnýn yapýlabilmesi gibi "deðerli" özelliklerden uzaklaþýyor
olacaksýnýz.
Bir kaç cycle ýn bile çok deðerli olduðu bir proje yapacaksanýz
assembly öðrenmeniz daha yerinde olur.
-- Onur Küçük Knowledge speaks, <onur.--.-.kablonet.com.tr> but wisdom listens_______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama