2017-04-03 67 views
1

我一直在测试使用while循环通过一个函数来创建多个图表的PHP创造的TeeChart图表:PHP的TeeChart内存消耗

while() { 
    create_my_chart(); 
} 

后的这14次迭代,我发现了以下错误:

“致命错误:允许的用尽67108864个字节内存的大小(试图分配800个字节)中tchart \源\ GraphicsGD.php上线602”

这暗示的TeeChart没有被正确释放内存但我不知道如果有什么我可以做的?

+0

对于'的TeeChart不释放内存correctly',写一个bug报告,并将其发送给他们。这是一个支付的延伸! – JustOnUnderMillions

+0

请安排一个[简单示例](http://stackoverflow.com/help/mcve),我们可以按原样运行。 – Yeray

+0

@Yeray对于teeChart只有可用的自由路径。你必须付钱。 – JustOnUnderMillions

回答

0

您允许的内存使用量似乎只有64MB。这是非常小的! 在脚本中将其更改为php.ini或执行ini_set('memory_limit','1G')以允许1 GB内存。并再次测试。

http://php.net/manual/en/ini.core.php#ini.memory-limit

+0

我试过了,但似乎没有效果。我赞同memory_get_usage通过与以下结果每次迭代: 12072208,18087936,21757952,25427968,29097984,32768000, 36438016,39845888,43778048,47448064,51118080,54788096,58458112,62128128,65798144 我认为这表明东西没有开始被teechart释放。 – KDavies

+0

@KDavies在while和after函数'gc_collect_cycles()'之前尝试'gc_enable()'。如果这不行,写一个错误报告。你也可以进入错误部分,并在GraphicsGD.php中使用'unset()'变量。 – JustOnUnderMillions

+0

我已经添加了gf_enable()和gc_collect_cycles(),它们没有什么区别,我会看看GraphicsGD并回报。感谢您的建议。 – KDavies