PHP ile dizi yapmayı deniyorum. Dizinin boyutu 26000 x 26000'dir. Bu büyük bir dizi yapmak mümkün mü? Zaten boyutta 10000 x 10000 fakat program ile bir dizi yapmayı deneyin bana bu söyleyip duruyorum:PHP kullanarak büyük dizi (26000 x 26000) nasıl yapılır?
Fatal error: Out of memory (allocated 1886388224) (tried to allocate 24 bytes) in C:\xampp\htdocs\matrix\index.php on line 24
i 8 GB RAM, ben zaten sahip -1 (apache yapılandırmasında) php.ini içinde memory_limit set var. kod derlemesi için dizi şudur:
function zeros($rowCount, $colCount)
{
$matrix = array();
for ($rowIndx=0; $rowIndx<$rowCount; $rowIndx++)
{
$matrix[] = array();
for($colIndx=0; $colIndx<$colCount; $colIndx++)
{
$matrix[$rowIndx][$colIndx]=0;
}
var_dump(memory_get_usage());
}
return $matrix;
}
$matrix = zeros(25000,25000);
Ben de zaten SplFixedArray kullanmayı deneyin, ancak sonuç aynıdır. Lütfen yardım edin, teşekkürler! :)
ben Kullanım durumunuz böyle büyük diziler için ne olduğunu merak zorunda kod parçasını kullanabilir. Mümkün mü, evet, daha uzun süre önce daha fazla belleğe ihtiyacınız olacağını tahmin etsem de gerekli. –
Düz sayısal indeksleme kullanıyorsanız ve dizinizin boyutlarını önceden biliyorsunuz; Neden [SPLFixedArray] (http://nl3.php.net/manual/en/class.splfixedarray.php) yerine, http://nl3.php.net/manual/en/class.splfixedarray.php) yerine –
100.100'den 600'e 600, 600: memoryUsage/arrayElements ≈ 200 Byte'dan test ettim. 25000 * 25000 * 200 Byte ≈ 100GB –