Home >Backend Development >PHP Tutorial >Solution to the problem of PHP array consuming too much memory_PHP tutorial
Generally speaking, the memory utilization of PHP arrays is only 1/10. That is to say, an array with 100M of memory in C language requires 1G in PHP.
Especially in systems where PHP is used as a backend server, the problem of excessive memory consumption often occurs.
Because this is a language problem, conventional solutions are more difficult to solve. The following is a solution through string.
Code
$total = 100000;
$double = "";
for ($i = 0; $i < $total; $i++)
{
$double .= pack("d", $i + 0.1);
}
for ($i = 0; $i < $total; $i++)
{
unpack( "@" . ($i * 8) . "/d", $double);
}
This example uses a string to save an array of doubles. Then unpack it when using it.
Of course, this will impact performance. It depends on the specific needs.
For example, in this case:
You have 10 arrays, each array is 10M (about 1 million data), then ten will cost 100M of memory.
If you add 10 people concurrently, the memory will be seriously insufficient.
Then, among the 10 arrays, they are not used at the same time every time. You can, save them as string
Then, when used, unpack a certain string into an array.