Depassement memoire

Signaler
Messages postés
2
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
2 octobre 2007
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjour, j'utilise une classe abstraite SQL qui me sert d'acces aux données depuis n'importe quelle autre classe.
Cette classen'est jamais instanciée et toujours appelée SQL::query($requete).

Hors après un grand nombre de requete consecutives (plusieurs milliers), le système me signale un dépassement mémoire. (8M pour php.ini, ca semble quand même pas mal)
Les requetes sont des insert donc je ne consomme pas de ressources en stockant des résultats.
Le free_result() n'arrange rien.

"Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 35 bytes) in I:\sites\EN ligne\Setup Object\classes\DB_Classes\SQL.php on line 91"

Je ne comprend pas d'ou vient cette occupation mémoire alors que je ne stocke rien de volumineux.

L'appel à une classe abstraite non instanciée fait-il que le système la recharge en mémoire à chaque appel ?
Dois je la transformer en classe normal et l'utiliser via un objet global ?

Pour moi le truc c'est que je tiens a pouvoir faire des requetes depuis n'importe quel objet en une ligne: SQL->query($requete) et sans avoir a charger en code.

Merci pour les réponses !!!!!!!!

3 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

tu affiches des choses dans ton script?
La classe, stocke t elle quelque chose en mémoire ? des logs, un tableau des requêtes effectuées, etc...?
Bref, il nous faut en savoir plus, là.
On dépasse très vite les 8Mo, en fait, très facilement, crois-moi ;-)
Messages postés
2
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
2 octobre 2007

En fait je suis en phase de debuggage.
A chaque requete je retourne 4 ou 5 lignes de 50 octets pour indiquer que le requetage s'est bien passé.
Il est vrai que des milliers de requetes  * ces quelques lignes ca pese lourd.

Je n'avais pas pensé a cela.

Il s'avère qu'au final je générais énormément de lignes de sortie, d'autres ailleurs que dans le sql , surtout des contrôles de déroulement de script. J'ai suppprimé des contrôles et ca tourne depuis.

Merci beaucoup pour la rapidité de la réponse, suis bluffé. Malalam t'es partout sur ce site, bigre, respect !!!

merci encore !!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Ben je suis l'admin, j'ai intérêt à être partout ;-)
Et de rien, heureux d'avoir pàu t'aider :-)