Script bouffeur de mémoire
Posté : 16 nov. 2006, 19:47
J'utilise une classe liée à MYSQL dite persistante sur laquelle je boucle pour charger les données d'un fichier (entre 5.000lignes et 20.000 lignes)
Pour MYSQL, c'est de la bibine (j'ai testé en direct via LOAD DATA)
Par contre, avec mon objet, j'atteinds des sommets (jusqu'à 500Mo !!!) sans expliquer pourquoi et c'est lent, c'est lent !!!
Bien sûr, j'ai fait sauter la limite de temps, cherché à augmenter la taille mémoire limite (64Mo) , ajouté des UNSET pour rendre la mémoire à chaque passage ou je crée une nouvelle occurence, rien n'y fait !!!
La fonction ci-dessous est appelée à chaque ligne de mon fichier (je passe sous silence la partie IMPORT ...
Pour MYSQL, c'est de la bibine (j'ai testé en direct via LOAD DATA)
Par contre, avec mon objet, j'atteinds des sommets (jusqu'à 500Mo !!!) sans expliquer pourquoi et c'est lent, c'est lent !!!
Bien sûr, j'ai fait sauter la limite de temps, cherché à augmenter la taille mémoire limite (64Mo) , ajouté des UNSET pour rendre la mémoire à chaque passage ou je crée une nouvelle occurence, rien n'y fait !!!
La fonction ci-dessous est appelée à chaque ligne de mon fichier (je passe sous silence la partie IMPORT ...
function AjoutPiece($Reference,$Indice,$Designation) {
$UnePiece = new Piece($Reference);
if ($UnePiece->Erreur <> "") {
$Message .= $UnePiece->Erreur."<br>";
} else {
$UnePiece->Enregistrer();
if ($UnePiece->Erreur <> "") {
$Message .= $UnePiece->Erreur."<br>";
} else {
$UnePiece->Attribuer("Indice",$Indice);
if ($UnePiece->Erreur <> "") $Message .= $UnePiece->Erreur."<br>";
$UnePiece->Attribuer("Designation",$Designation);
if ($UnePiece->Erreur <> "") $Message .= $UnePiece->Erreur."<br>";
}
}
unset($UnePiece);
return $Message;
}