你好,我需要分析大约50,063,860组合为我的幻想名册。是60挑6。
我试图生成所有可能的组合,将名称数组传递给Math_Combinatorics珍珠库:
$n是由60个元素组成的数组,
$result = $combinatorics->combinations( $n, 6);
致命错误:允许在第126行的/usr//php/Math/Combinatorics.php中耗尽2147483648字节(尝试分配72个字节)。
是否一次分配更多内存或为其提供更少的条目,从而使其不崩溃?
发布于 2015-07-14 03:49:01
您可以在您的memory_limit中增加php.ini。来自php文档
这将设置脚本允许分配的最大内存量(以字节为单位)。这有助于防止编写不当的脚本占用服务器上的所有可用内存。注意,若要没有内存限制,请将此指令设置为-1。
您还可以使用ini_set()函数在脚本中内联地设置此值,甚至可以使用php_value指令在Apache虚拟主机配置中设置该值。
话虽如此,您应该重构代码,使所有的排列都不需要同时在内存中,从而大大减少程序的内存占用。
发布于 2015-07-14 03:50:49
您可以使用ini_set('memory_limit', '-1');跳过此错误。这将覆盖默认方法。
PHP分配的内存大小
但是注意到这并不是更好的解决方案。也来看看这个
和可能重复的允许内存大小为33554432字节
https://stackoverflow.com/questions/31397264
复制相似问题