PHP数组内存耗用太多问题的解决方法

yipeiwu_com6年前PHP代码库
因为这个是语言的问题,常规方案比较难以解决。下面是一种通过string 解决的方案。
复制代码 代码如下:

$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);
}

这个例子用一个string 保存一个double 的数组。然后在使用的时候unpack出来。
当然,这会影响性能。要看具体的需求。

比如这样的情况下:
你有10个数组,每个数组10M (1百万数据左右),那么十个要花费 100M内存。
再加上10个人并发的话,内存就会严重不够了。
然后,在10个数组,不是每次都同时使用的。你可以,把他们保存成string
然后,在使用的时候,unpack某一个string变成一个数组。

相关文章

PHP处理Json字符串解码返回NULL的解决方法

PHP处理Json字符串解码返回NULL的解决方法

本文实例讲述了PHP处理Json字符串解码返回NULL的解决方法。分享给大家供大家参考之用。具体方法如下: 一般来说,php对json字符串解码使用json_decode()函数,第一个...

elgg 获取文件图标地址的方法

过程如下: 首先,实体保存的时候用这个方法(系统本身的): 比如有一个Activity类,继承自ElggObject,创建了一个它的实例 activity, 复制代码 代码如下: //...

PHP编程中尝试程序并发的几种方式总结

本文大约总结了PHP编程中的五种并发方式: 1.curl_multi_init 文档中说的是 Allows the processing of multiple cURL handles...

推荐一款MAC OS X 下php集成开发环境mamp

推荐一款MAC OS X 下php集成开发环境mamp

之前苦于mac上搭建本地服务器之艰辛,找寻好久都没找到一款类似windows上集成的本地服务器环境,诸如phpstudy,xampp,appserv,虽说xampp也有mac版,但不知为...

PHP中预定义的6种接口介绍

PHP预定义了6个接口介绍如下: 1.Traversable遍历接口 呵呵!其实它不是一个在PHP中可以使用的接口,内部类才可使用,它有一个用途就是检测一个类是否可以遍历。 if($...