> python liste için her tamsayı eleman için 4byte bellek kullanıyor.
Aslında bu pek doğru değil. Python'da tamsayılarda boy sınırı (üsr ve alt) yok. Bir tamsayı, tüm belleği kaplayacak kadar büyük olabilir. Buda tamsayı işinde bir derece yavaşlamaya sebep oluyor. Eğer "register int" ihtiyacı olacak kadar sıkıntılı bir uygulama yazıyorsanız, bu zaten sadece C'ile mümkün. Hatta belki assembler. Python için bunu bir JIT kullanmak veya belki döngüleri map() gibi fonksiyonlarla değiştirmek bir çözüm olabilir. 2011/5/18 Baris CUHADAR <[email protected]>: >> Python'da yoktu en son baktığımda > Sorun da tam buradan kaynaklanıyor zaten. > >> Python'daki for, bir array (diyelim) ın her elemanı üzerinde çalışan >> bir iterasyon. > for i in range(x): > if i ==y: > i+=z > > İşin diğer ilginç tarafı, aynı döngüyü while ile yazdığınızda > i=0 > ör: while i < x: > if i==y > i+=z > i+=1 > > while döngüsü for dan daha yavaş çalışıyor. "register int i" ihtiyacı > içindeyim :) > Fakat şöyle yüzbinlik > döngüde bellek konusunda pahalıya patlayan liste'den kurtulmuş oluyorsunuz. > python liste için her tamsayı eleman için 4byte bellek kullanıyor. > her ikisindede i'ye değer atanıyor listedeki sıradakine bakıp i'ye > değer atamayla, i'ye bakıp, i'yi bir yükseltmek neden daha yavaş. > Sanırım kaynak koda bakmak lazım. > > > > On 05/17/2011 11:44 PM, Serdar KÖYLÜ wrote: >> Python'daki for, bir array (diyelim) ın her elemanı üzerinde çalışan >> bir iterasyon. PHP'de bunun karşılığı, foreach. PHP'deki "for" >> karşılığı Python'da yoktu en son baktığımda:) > _______________________________________________ > Linux-programlama mailing list > [email protected] > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > _______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
