|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 105 ![]() |
Salut, autre probème qui n'a rien à voir
En me servant de la classe MPDF, je veux générer un pdf qui contiendrais tous les produits qui sont dans ma base de données ( soit 4 000produits). Le truc c'est que j'arrive toujours à un : Fatal error: Out of memory (allocated 1974206464) (tried to allocate 261904 bytes) En limitant ma requête avec un LIMIT, ca fonctionne. Je peux aller jusque 1000 produits grâce à : ini_set("memory_limit",'-1'); ini_set('max_execution_time', 0); Mon code est tout bête : Code :
Découper en plusieurs script ?? genre le premier limite la requête entre 0 et 1000 puis il appelle le deuxième script qui génère un nouveau PDF de qui limite la requête entre 1000 et 2000 ect.. Ou je sais pas , une idée plus intelligente ?? Là pour 1000 produits , mon pdf fait 22 pages, bon une fois que j'arriverai a faire sortir tous mes produits dedans , je rangerai les données en deux colonnes. En mode HTML, pas de problème pour afficher tout le catalogue, le problème vient bien de la génération du PDF.. Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : décembre 2007 Messages : 181 ![]() |
Salut, l'idée en fait déjà c'est d'analyser l'usage de ta mémoire à chaque passage de la boucle (en debug en tout cas) tu auras donc une idée plus précise de quand passer à un autre fichier.
Ensuite il ne faut pas appeler ton 2eme script via le premier, je suis pas convaincu que ça libère réellement la mémoire. L'idée c'est de stocker quelques part, l'endroit où tu t'es arreté, via une clé primaire, une date, dans une bdd , dans un fichier peu importe. De faire tourner un CRON qui appele un script qui traite régulièrement ta base/referentiel, et reprend là ou le précèdent s'est arreté. ainsi la mémoire est vraiment libéré. Et ton script tu lui dis de s'arreter en fonction d'une certaine charge mémoire, ainsi tu optimise le dynamisme jusque dans la charge mémoire. memory_get_usage() peut, peut-être te servir. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com