gpt4 book ai didi

php - 阻止我的脚本使用这么多内存?

转载 作者:行者123 更新时间:2023-12-03 01:02:43 25 4
gpt4 key购买 nike

我有一个脚本,它列出了一个数组中所有可能的排列,诚然,可以使用它来代替单词列表。如果我让它发挥作用,除非尝试次数受到限制,否则最终不可能不成功。

无论如何,该脚本显然需要大量内存,这会导致任何服务器着火。我需要帮助的是找到一种方法来分散内存使用,比如以某种方式重置脚本并通过转到另一个文件或其他东西(可能通过使用 session )从中断处继续。我不知道。

这是我到目前为止所得到的:

<?php 
ini_set('memory_limit', '-1');
ini_set('max_execution_time', '0');

$possible = "abcdefghi";

$input = "$possible";

function string_getpermutations($prefix, $characters, &$permutations)
{
if (count($characters) == 1)
$permutations[] = $prefix . array_pop($characters);
else
{
for ($i = 0; $i < count($characters); $i++)
{
$tmp = $characters;
unset($tmp[$i]);

string_getpermutations($prefix . $characters[$i], array_values($tmp), $permutations);
}
}
}
$characters = array();
for ($i = 0; $i < strlen($input); $i++)
$characters[] = $input[$i];
$permutations = array();

print_r($characters);
string_getpermutations("", $characters, $permutations);

print_r($permutations);

?>

有什么想法吗? :3

最佳答案

您可以将每个 XXX 排列的排列存储在文件中,然后在需要时以正确的顺序重新打开文件以显示/使用排列。 (文件或者你想要的任何东西,只要能释放PhP内存即可)

我发现您只是在重复排列,但也许您想用它做其他事情?所以这取决于某种程度。

此外,在进行排列时尝试尽快取消设置尽可能多的未使用的变量。

编辑:有时,像对排列数组那样使用引用可能会导致更多的内存使用。万一您没有尝试,请检查有或没有哪个更好

关于php - 阻止我的脚本使用这么多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18412984/

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