PHP数组内存耗用太多问题的解决方法
作者:bea
因为这个是语言的问题,常规方案比较难以解决。下面是一种通过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 解决的方案。
代码如下:
$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变成一个数组。
有用 | 无用
代码如下:
$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写出自己的BLOG系统 2
- php 中文字符入库或显示乱码问题的解决方法
- QueryPath PHP 中的jQuery
- 10个可以简化php开发过程的MySQL工具
- Fatal error: Call to undefined function curl_init()解决方法
- PHP Socket 编程
- 有关JSON以及JSON在PHP中的应用
- dedecms系统的广告设置代码 基础版本
- PHP 动态随机生成验证码类代码
- DedeCMS 核心类TypeLink.class.php摘要笔记
- 通俗易懂的php防注入代码
- Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
- 用PHP实现读取和编写XML DOM代码
- php session和cookie使用说明
- DedeCMS dede_channeltype表字段注释
- php抓取https的内容的代码
- PHP 检查扩展库或函数是否可用的代码
- php下关于中英数字混排的字符串分割问题
- Blitz templates 最快的PHP模板引擎