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

时间:2024-09-18 02:40:22 PHP 我要投稿
  • 相关推荐

关于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数组内存耗用太多问题的解决方法】相关文章:

如何获取PHP数组的键与值呢10-25

php数组函数序列之array-combine() - 数组合并函数的代码08-25

电脑内存常见的问题09-30

关于深入PHP内存相关的功能特性详解09-02

电脑内存常见故障及解决方法05-12

手机内存卡故障及解决方法10-10

JAVA垃圾收集算法与内存泄露的解决方法12-04

电脑内存常见的问题有哪些08-25

定额耗用量比例法和定额耗用量比例法分析08-22

电脑内存常见的问题及解决办法07-14

在线咨询

关于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变成一个数组。