【问题标题】:Export of large amounts of data with JMSSerializerBundle使用 JMSSerializerBundle 导出大量数据
【发布时间】:2015-01-30 08:16:39
【问题描述】:

如果我尝试使用JMSSerializerBundle 导出大量数据,我会收到以下错误。

FatalErrorException:错误:允许的内存大小为 134217728 字节 用尽(试图分配 1332351 字节) /var/www/app/trunk/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php 第 27 行

如果我只用这个包导出少量记录,一切正常。

$format = 'json';
$serializer = \JMS\Serializer\SerializerBuilder::create()->build();
$serializer->serialize($data, $format, SerializationContext::create()->enableMaxDepthChecks());

数组$data的计数是1917

我该如何处理这个问题?

【问题讨论】:

    标签: symfony jmsserializerbundle


    【解决方案1】:

    尝试在你的脚本中做某处:

    echo ini_get('memory_limit'); // To see how much memory you have
    

    然后更新 php.ini 文件中的 memory_limit 设置。重新启动服务器并重试。

    【讨论】:

    • 当前我有 128M,我增加了函数中的 memory_limit,我需要它到 256M "ini_set('memory_limit', '256M')"。如果我修改我的“php.ini”并重新启动 php“/etc/init.d/php5-fpm restart”,我的修改对应用程序没有影响。在ini文件中设置这个更好吗?
    • 这取决于您是想将所有东西放在本地还是就在那里。您是否看到 echo ini_get('memory_limit') 的输出不同?如果没有,请尝试在ini中设置(仔细检查是apache ini而不是cli ini)
    • 这是正确的 ini。如果我调用“phpinfo()”,我的 pnp ini 文件的路径是“/etc/php5/fpm/php.ini”。我修改了“memory_limit”并重新启动“php5-fpm”和“apache”,但没有任何反应。如果我调用“phpinfo()”,则“memory_limit”不会被修改。我不知道我该如何解决这个问题。 256M 可以用于 php 应用程序,还是应该增加?
    • 不幸的是,我什么也没找到。我在函数中设置了这部分,但那不是程序干净,临时解决办法:)
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多