在变量中存储大量数据集(内存异常错误)

时间:2016-07-13 16:37:00

标签: php memory gearman

我有一个PHP应用程序,它以json格式向客户端返回预测值。我收集了所有数据,因为我在变量中收集更多

如果客户只是在很短的时间内要求价值,那么生活就会很好,他会得到他所要求的。问题是他要求1年或更长时间的预测。出现exaust内存错误是因为存储在变量中的数据集很大。

我不想延长记忆,我想以其他方式思考。

我遇到了内存映射文件。这是一个很好的解决方案,还是你可以想到别人?谢谢!

我正在使用gearman,对于工人检索的每个数据,一个带有值的新数组被添加到我的预测变量中。

完成所有操作后,我将其返回给客户。

public function requestCompleteApi(\GearmanTask $task)
{                               
    $this->forecast[] = unserialize($task->data());
}

1 个答案:

答案 0 :(得分:0)

所以,这是一个非常模糊的问题,但我尽力帮助。

我有一些糖:

  1. 尝试使用PHP 7 - 它使用更少的内存来存储变量。
  2. 如果您使用大数组,请尝试重新格式化您的应用程序。也许你可以使用生成器(在PHP 5.5+中)PHP Generators
  3. 如果不尝试使用JSON,可以使用更少的内存,但可以使用更紧凑的格式,例如ProtoBufApache Thrift