Jump to content

Edit History

prestacoco

prestacoco

Hi,

At the prestashop root, I have a test.php script with this content

require('./config/config.inc.php');

error_reporting(E_ALL);
ini_set("memory_limit", '2048M');
ini_set('default_socket_timeout', -1);
set_time_limit(0);
ini_set('display_errors', 'on');

$size = pow(2, 18); //2^18 = 262144, 2^17 = 131072

$startTime = microtime(true);

$array = array();
for ($key = 0, $maxKey = $size - 1; $key <= $maxKey; ++$key) {
	$line = ['id' => 55, 'ref_1' => "JKJKJ798798", 'ref_2' => "AKUYT798798", 'id_test' => "TEST798798", 'id_category' => 18, 'desc_long' => "L'investissement immobilier s'avère être une valeur sûre pour de nombreux investisseurs. Que ce soit pour générer des revenus locatifs réguliers ou pour réaliser une plus-value à long terme, la pierre est un placement attractif. Cependant, avant de se lancer, il est essentiel d'étudier attentivement le marché local, de définir un budget précis et d'envisager les éventuels frais liés à l'achat, à la gestion locative et à la fiscalité. L'accompagnement d'un professionnel de l'immobilier peut s'avérer précieux pour prendre les meilleures décisions.", 'desc_short' => "L'investissement immobilier s'avère être une valeur sûre pour de nombreux investisseurs. Que ce soit pour générer des revenus locatifs réguliers ou pour réaliser une plus-value à long terme, la pierre est un placement attractif. Cependant, avant de se lancer, il est essentiel d'étudier attentivement le marché local, de définir un budget précis et d'envisager les éventuels frais liés à l'achat, à la gestion locative et à la fiscalité. L'accompagnement d'un professionnel de l'immobilier peut s'avérer précieux pour prendre les meilleures décisions.", 'wholesale_price' => 1028.510000, 'title' => "Générer des revenus locatifs réguliers", 'personnalisable' => 0, 'statutnum' => 1, 'nb_vu' => 150, 'datecrea' => "2024-09-18 09:25:00", 'dateupd' => "2024-09-18 09:25:00"];
    $array[$key] = $line;
}

$endTime = microtime(true);

echo 'Inserting ', $size, ' good elements took ', $endTime - $startTime, ' seconds', "\n";


I run it in command line "php test.php" and I have this error 

Quote

mmap() failed: [12] Cannot allocate memory

mmap() failed: [12] Cannot allocate memory

Fatal error: Out of memory (allocated 195039232) (tried to allocate 20480 bytes) in /home2/stocketik/public_html/test.php on line 16

No matter if I increase memory_limit, I always get the error.
If I set memory_limit to 128M I have the following error "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)" which makes sense.

The strange thing is that if I remove the require line the script runs successfully.

Has anyone ever encountered this problem? How can I solve it ?

Removing the require line is not the solution. I just made this script as a POC and to simplify my problem. In my real scenario I have a script which makes a database request (a select using Db::getInstance()->executeS($sql_select)) and it crashs.

 For further information, I'm using PS 1.7 and PHP 7.0. I also tried with PHP 8 and same problem.

prestacoco

prestacoco

Hi,

At the prestashop root, I have a test.php script with this content

require('./config/config.inc.php');

error_reporting(E_ALL);
ini_set("memory_limit", '2048M');
ini_set('default_socket_timeout', -1);
set_time_limit(0);
ini_set('display_errors', 'on');

$size = pow(2, 18); //2^18 = 262144, 2^17 = 131072

$startTime = microtime(true);

$array = array();
for ($key = 0, $maxKey = $size - 1; $key <= $maxKey; ++$key) {
	$line = ['id' => 55, 'ref_1' => "JKJKJ798798", 'ref_2' => "AKUYT798798", 'id_test' => "TEST798798", 'id_category' => 18, 'desc_long' => "L'investissement immobilier s'avère être une valeur sûre pour de nombreux investisseurs. Que ce soit pour générer des revenus locatifs réguliers ou pour réaliser une plus-value à long terme, la pierre est un placement attractif. Cependant, avant de se lancer, il est essentiel d'étudier attentivement le marché local, de définir un budget précis et d'envisager les éventuels frais liés à l'achat, à la gestion locative et à la fiscalité. L'accompagnement d'un professionnel de l'immobilier peut s'avérer précieux pour prendre les meilleures décisions.", 'desc_short' => "L'investissement immobilier s'avère être une valeur sûre pour de nombreux investisseurs. Que ce soit pour générer des revenus locatifs réguliers ou pour réaliser une plus-value à long terme, la pierre est un placement attractif. Cependant, avant de se lancer, il est essentiel d'étudier attentivement le marché local, de définir un budget précis et d'envisager les éventuels frais liés à l'achat, à la gestion locative et à la fiscalité. L'accompagnement d'un professionnel de l'immobilier peut s'avérer précieux pour prendre les meilleures décisions.", 'wholesale_price' => 1028.510000, 'title' => "Générer des revenus locatifs réguliers", 'personnalisable' => 0, 'statutnum' => 1, 'nb_vu' => 150, 'datecrea' => "2024-09-18 09:25:00", 'dateupd' => "2024-09-18 09:25:00"];
    $array[$key] = $line;
}

$endTime = microtime(true);

echo 'Inserting ', $size, ' good elements took ', $endTime - $startTime, ' seconds', "\n";


I run it in command line "php test.php" and I have this error 

Quote

mmap() failed: [12] Cannot allocate memory

mmap() failed: [12] Cannot allocate memory

Fatal error: Out of memory (allocated 195039232) (tried to allocate 20480 bytes) in /home2/stocketik/public_html/test.php on line 16

No matter if I increase memory_limit, I always get the error.
If I set memory_limit to 128M I have the following error "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)" which makes sense.

The strange thing is that if I remove the require line the script runs successfully.

Has anyone ever encountered this problem? How can I solve it ?

Removing the require line is not the solution. I just made this script as a POC and to simplify my problem. In my real scenario I have a script which makes a database request (a select using Db::getInstance()->executeS($sql_select)) and it crashs.

 For further information, I'm using PS 1.7 and PHP 7.0. I also tried with PHP 8 and same problem.

×
×
  • Create New...