| |
| Posted by Ali Çehreli (acehreli) in reply to Salih Dinçer | PermalinkReply |
|
Ali Çehreli (acehreli)
Posted in reply to Salih Dinçer
| Teşekkürler, evet, çok güzel özetlenmiş.
"Big O"nun daha önemsiz olduğu (onun yerine bellek erişiminin daha önemli olduğu), ancak küçük miktar veri durumunda doğru. Yoksa, işlenecek veri miktarı arttığında yine de "big O" önbellekten çok daha önemlidir. (Örneğin, "big O"su kötü algoritma bazı işlemlerde evrenin sonundan daha sonraya sarkabilir. :) Tabii, çalıştığımız programda örneğin işlenecek veri on bin adetten fazla değildir ve evet, o zaman ağaç veri yapısı yerine dizi kullanmak çok daha hızlı olabilir. İşlemeden önce dizi sıralanır ve baştan sona işlenince ikili ağaçtan çok daha hızlıdır.
Bir de, işlev çağrıları yerine işlevlerin içeriklerini kopyalama çalışmasındaki bilgiler de çok güzel ama LLVM gibi akıllı derleyiciler zaten gereksiz işlem tekrarlarını ortadan kaldırırlar. Tabii kendisi de "işlev yazmayın" demiyor ama programın doğruluğu ve kodun üstesinden gelinebilmesi için küçük işlevlere bölünmüş olması çok önemli. Konuşmacının söylediğine destek olarak, önce ölçelim, zamanın nerede harcandığını görelim ve hız getireceğini gördüğümüz bazen garip işlemleri ancak o zaman yapalım.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
|