PHP 数组消耗内存太多问题的解决方法_PHP教程

WBOY
Release: 2016-07-21 14:54:29
Original
1202 people have browsed it

一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G。

特别是在PHP作为后台服务器的系统中,经常会出现内存耗费太大的问题。

因为这个是语言的问题,常规方案比较难以解决。下面是一种通过string 解决的方案。

代码
$total = 100000;
$double = "";
for ($i = 0; $i {
$double .= pack("d", $i + 0.1);
}

for ($i = 0; $i {
unpack("@" . ($i * 8) . "/d", $double);
}

这个例子用一个string 保存一个double 的数组。然后在使用的时候unpack出来。

当然,这会影响性能。要看具体的需求。

比如这样的情况下:

你有10个数组,每个数组10M (1百万数据左右),那么十个要花费 100M内存。

再加上10个人并发的话,内存就会严重不够了。

然后,在10个数组,不是每次都同时使用的。你可以,把他们保存成string

然后,在使用的时候,unpack某一个string变成一个数组。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/364609.htmlTechArticle一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G。 特别是在PHP作为后台服务器的系统...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!