Kısa kısa geçeceğim, çünkü önemli sonuçlar elde ettim... :nuts:
Önce bellek, çünkü bu hıza da etki ettiği gibi düşük bellekli taşınabilir aygıtlarda tercih nedenimiz olabilir!
DMD 2.060 ile p3 algoritması:
770 MB. (üretilen rasgele dizi işleve dup ile kopyalanarak verildiğinde)
513 MB. (kopyalanmadan, doğrudan verildiğinde)
475 MB. (iç içe işlev iptal edilip referans ile doğrudan diziye eriştiğinde)
Bu testleri'*' 67,1 milyon sayı ile yaptım. Her biri yaklaşık olarak 1 dk. (en fazla 1m16.113s) sürdü. Örneğin:
'real 1m16.113s
user 1m12.209s
sys 0m1.868s
'
Ama bu değerlere dördüncüsünü eklemeliyiz ki o da dizinin üretilme zamanını (~26 sn.) göstersin. Bu durumda sıralama işlemi 1,66 Mhz. ile 67.1 milyon 32 bitlik sayı 50 sn. sürdü diyebiliriz.
Küçük ve çok ilginç bir ayrıntı daha var! O da önceki sürümde (DMD 2.059) dizinin kapladığı alan (son test) 400 MB. bile değil. Tam olarak ifade edersek 475 - 399 = 76 MB.'lık bir fark var. Artık bu son sürümde ne yapmışlarsa...:)
'(Not: Bundan sonraki testler, belleği daha tutumlu kullandığı için önceki sürümde yapılmıştır!)'
DMD 2.059 ile kb algoritması:
1,8 GB. (üretilen rasgele dizi işleve dup ile kopyalanarak verildiğinde)
1,7 GB. (kopyalanmadan, doğrudan verildiğinde)
Bu son testte çok büyük bir veri yok; yavaş olması dışında. Ancak bütün testlerde önemli bir şey daha dikkatimi çekti; o da sadece tek çekirdeğin işlem görmesi. Çünkü diğer üç çekirdekte fazla bir kıbırdanma yoktu. Elbette paralel programlama yapmadığımız için böyle ama hiç mi işletim sistemi (Fedora 17) belleği daha hızlı kullanabilmek için diğer çekirdekleri kullanmaz...:)
'(*)' Atom N450 işlemci ile 1,66 MHz. saat frekansında...
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]