gpt4 book ai didi

PHP 内存耗尽 (json_decode)

转载 作者:可可西里 更新时间:2023-10-31 23:05:15 29 4
gpt4 key购买 nike

当我的应用程序尝试解码大型(15K~ 行)JSON 字符串(来自 CURL)时,它失败了:

Allowed memory size of 134217728 bytes exhausted (tried to allocate 91 bytes)

我知道我可以扩展内存限制或取消限制,但我宁愿避免这样做。我一直想知道是否有不同的方法来解决这类问题 - 例如将 JSON 字符串拆分成小块(如 array_chunk)。

更新

为了确保问题不是由应用程序中的任何其他函数/循环引起的,我将 JSON 字符串提取到一个文件中并尝试直接从文件中对其进行解码(文件大小 = 11.8MB)。仍然失败。

$y = json_decode( file_get_contents('/var/tmp/test.txt') );

更新 2该脚本在 Mac OS X 环境中运行。我也在 Ubunto env(也是 128M 内存限制)上测试过它 - 它在那里工作得很好。我应该担心吗?

最佳答案

要永久避免这种情况,请使用基于事件的 JSON 解析器,例如 https://github.com/salsify/jsonstreamingparser .

这样一来,整个事情就不必一次都在内存中了。相反,您处理一次为您提供一个对象/数组的事件。

关于PHP 内存耗尽 (json_decode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24804710/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com