php çok boyutlu diziler, bellek yönetimi

2 Cevap php

Ben böyle bir yapıya ihtiyacımız var

    array(){
    [0] => array(){
           [0] => array(){ 
                         // this array will have 'n' values(n is large, like 2000)
                         }
           [1] => array(){ 
                         // this array will have 'n' values(n is large, like 2000)
                         }
                   }
    .
    .
    .
[n] => ............
}

n, diziler her biri, her eleman n değerlerinin bir dizi var 2 eleman dizi, sahip olacaktır.

Kullandığım $list[$m][0][$n] ve $list[$m][1][$n], 2 iç döngüler için $m,$n 0...2000 nereden değişir

Bu izin bellek boyutu .. ben php.ini içindeki boyutunu değiştirebilirsiniz haçlar, ama sınırı değiştirmek benim bellek kullanımını optimize etmek ve yok etmek istiyorum.

kullanarak nesneleri yardımcı olacak?

Anlamak için bazı örnek kod verin. Teşekkür ederim.

2 Cevap

Nesneleri kullanarak büyük olasılıkla yardımcı olmaz (it might even be worse).

Yapmanız gereken şey, bu gibi bir durumda, yeniden düşünüyorum:

  • either your design : there must be another way to achieve what you want
    • muhtemelen başka bir algoritma kullanılarak?
    • ya da bazı "temporary data" başka belleğinde depolanması daha? Bir SQLite veritabanı, örneğin?
  • or the language you'll use for your script
    • PHP her iş için en iyi araç değildir.

Verilerinizin net ağırlığı bellek sınırı geçerse varsayarsak, ben nesneler yardım nasıl olabilir göremiyorum. Veri depolama amaçları için, gerçekten, gösterimde sadece farklı bir formu olduğunu. Bilmiyorum, ama bir fark varsa, benim bahis nesneler daha pahalı olmasıdır - Belki bir yöntem diğer üzerinden birim başına bir byte kazandıracak.

Ama genel bir soru veri o sürü yapmak için çalışıyoruz ne olduğunu düşünüyorum? Bu disk veya veritabanına bunu saklamak bölgelerine uygulanabilir olması ve bellekte bunun sadece bir parçası olabilir?