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

yipeiwu_com5年前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程序的国际化实现方法(利用gettext)

步骤一:搭建环境 1,首先查看你的php扩展目录下是否有php_gettext.dll这个文件,如果没有,这就需要你 下载一个或是从其他地方拷贝一个,然后放到php扩展目录。 2,打开p...

phpmyadmin导入(import)文件限制的解决办法

到网上搜索了一下前人的解决办法,大多数都说修改php.ini中的upload_max_filesize,但修改了这个以后,还是提示这个问题;但phpmyadmin在提示这个问题的时候,右...

php 模拟POST提交的2种方法详解

一、通过curl函数复制代码 代码如下:$post_data = array();$post_data['clientname'] = "test08";$post_data['clie...

PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】

PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】

本文实例讲述了PHP学习记录之面向对象(Object-oriented programming,OOP)基础。分享给大家供大家参考,具体如下: 在面向对象的程序设计(英语:Object-...

php生成xml简单实例代码

当处理基于XML应用程序时,开发者经常需要建立XML编码数据结构。例如,Web中基于用户输入的XML状态模板,服务器请求XML语句,以及基于运行时间参数的客户响应。 尽管XML数据结构的...