Ben de bug bulmak istiyorum! :-D ;-)
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
July 01, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Ben de bug bulmak istiyorum! :-D ;-) -- |
July 01, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kadir Can | Alıntı: >Ve tabi ki canalpay'ı da unutmamak gerekir. Teşekkürler. Ali Bey zaten bir sürü bug buldu. Herhalde bug bulmaya çok uğraşsa en çok bug bulan kişi ünvanı alır :-) (Bir gün bende bug bulacağım :-D ) Ama bulunan bu son bug pek önemli değil bence. Bazı durumlarda programın daha hızlı çalışmasını bile sağlayabilir :-D Ancak derleyici yazılırken böyle olunması düşünülmediği için bug kapsamındadır herhalde. -- |
July 01, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Alıntı (canalpay): >
|
July 01, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Alıntı (canalpay): >Hep bir fazlası kadar yer ayırıyor Karışık yazmışım. :) Eleman sayısı ile kapasite farklı kavramlar. Evet, dizinin eleman sayısı hep bir artıyor; ama perde arkasında, ileride olabilecek eklemeler için bir kapasite de bulunuyor. Yani gerekenden fazla bellek ayrılmış, sonraki eklemeler için bekliyor. Bunu bir programla deneyebiliriz ... diyecektim ki, std.array modülünde zaten capacity işlevi varmış. :)
Ek not: Eğer ilk parametresi dizi olan bir işlev yazarsanız, o işlevi sanki dizi üyesi gibi kullanabilirsiniz. Yukarıdaki dizi.capacity ve dizi.bilgiVer() yazımları o kurala uygun olarak çalışıyor. Çıktısı şöyle:
Kapasitenin her arttığı nokta, bellekten yeni bellek ayrıldığını gösteriyor. Örneğin 3'ten 4'e geçerken 7 elemanlık yer ayrılmış. Başka bir gözlem, dmd yer ayırırken %50 arttırmıyor ve şu formülü kullanıyor: İlk ayırdığında 3, ama sonra (dizi.length * 2) + 1 Ali -- |
July 01, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Haklısın. Ben de yalnızca kapasitenin değiştiği noktalara bakmaya karar verdim:
Kapasite artma oranı gittikçe düşüyor; ama aralarda ani zıplamalar da var:
Garip... :) dmd bu işi sanki src/dmd/root/array.c dosyasındaki Array::reserve() işlevinde yapıyor ama orada böyle zıplamalı bir hesap görmüyorum. Ali -- |
July 01, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Böyle sohbetler çok yararlı oluyor. Kadir Can'ın sorusu dmd'nin bir hatasını ortaya çıkartmış oldu. Şu 'bug report'u açtım: http://d.puremagic.com/issues/show_bug.cgi?id=4412 Ali -- |
July 14, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı: >Ben de bug bulmak istiyorum! :-D ;-) Evet sen buldun sayılır. Bende bu gün bir bug buldum diye kendim sevinecektim, ancak çok komplike bir işe dönüştü. Yine beceremedim :-P -- |
July 14, 2010 Diziler Problem-1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kadir Can | Alıntı (Kadir Can:1278013678): >Ben de bug bulmak istiyorum! :-D ;-) Bunu sen buldun sayılır zaten. :) Bu hata giderilmiş: http://www.dsource.org/projects/druntime/changeset/332 Bir sonraki sürüm böylece daha da güzel olur. :) Ali -- |