Après recherche sur google j'ai augmenter la mémoire limite de 128M je suis passer a 25600M et toujours ce foutu message ???? WHY ??? J'ai modifier les deux php.ini (dans apache et php). Service apache ne dépasse pas les 900mo de ram après message erreur.
c'est ma config ou mon script impossible a réaliser ?
Mon script : (jusqu'à 9 ca marche après 10->foutu message)
function permutations($set) { $solutions=array(); $n=count($set); $p=array_keys($set); $i=1;
WHY ? Parce que votre script utilise plus de mémoire que ce qui est alloué.
L'erreur indique « Allowed memory size of 1073741824 bytes exhausted » soit plus de 1 Gio. C'est énorme 1 Gio pour un script PHP.
De toutes manière, même avec PHP 64 bits, vous ne pourrez pas dépasser des entiers sur 32 bits.
Les options disponibles sont K (pour Kilo octets) et M (pour mégaoctet) et G (pour gigaoctet ; disponible depuis PHP 5.1.0), ils sont insensibles à la casse. Tout autre syntaxe est supposée représenter des octets. 1M équivaut à un mégaoctet ou 1048576 octets. 1K équivaut à un kilooctet ou 1024 octets.
J'ai mis memory_limit -> 3G (a 4G la page ne se lance pas )
Apache tourne avec 96% de la ram environ 27 à 28 Giga. J'ai pu aller jusqu'à 10 . A 11 trop long (2h heures après toujours pas de résultat mais le serveur tourne toujours) mais cela fonctionne. Vivement les barrettes de 128G (pour grand public) pour faire des calculs des fou !
Voici le script pour ceux qui veulent faire joujou !!
À mon humble avis, PHP n'est pas un langage destiné à ce genre de calculs.
> J'ai mis memory_limit -> 3G (a 4G la page ne se lance pas ) Réfléchissez à ce que j'ai écrit précédemment : entier signé 32 bit, même avec PHP 64 bit.