J'ai un script qui, mis en opposition avec un timer, devient progressivement plus lent. C'est assez simple car tout ce qu'il fait est de lire une ligne, de la vérifier puis de l'ajouter à la base de données, puis de passer à la ligne suivante.Le script PHP devient progressivement plus lent (lecteur de fichier)
est ici la sortie de celui-ci se aggrave progressivement:
Record: #1,001 Memory: 1,355,360kb taking 1.84s
Record: #1,001 Memory: 1,355,360kb taking 1.84s
Record: #2,002 Memory: 1,355,192kb taking 2.12s
Record: #3,003 Memory: 1,355,192kb taking 2.39s
Record: #4,004 Memory: 1,355,192kb taking 2.65s
Record: #5,005 Memory: 1,355,200kb taking 2.94s
Record: #6,006 Memory: 1,355,376kb taking 3.28s
Record: #7,007 Memory: 1,355,176kb taking 3.56s
Record: #8,008 Memory: 1,355,408kb taking 3.81s
Record: #9,009 Memory: 1,355,464kb taking 4.07s
Record: #10,010 Memory: 1,355,392kb taking 4.32s
Record: #11,011 Memory: 1,355,352kb taking 4.63s
Record: #12,012 Memory: 1,355,376kb taking 4.90s
Record: #13,013 Memory: 1,355,200kb taking 5.14s
Record: #14,014 Memory: 1,355,184kb taking 5.43s
Record: #15,015 Memory: 1,355,344kb taking 5.72s
Le fichier, malheureusement, est d'environ ~ 20gb donc je serai probablement mort au moment où la chose est lu au taux d'augmentation. Le code est (principalement) ci-dessous mais je soupçonne que c'est quelque chose à voir avec fgets(), mais je ne sais pas quoi.
$handle = fopen ($import_file, 'r');
while ($line = fgets ($handle))
{
$data = json_decode ($line);
save_record ($data, $line);
}
Merci d'avance!
EDIT:
Décommenter 'save_record ($ data, ligne de $);' semble ne rien faire.
Pouvez-vous écrire le code pour save_record? C'est probablement la clé – Jhong
En fait, si je commente la ligne save_record() c'est toujours aussi mauvais. – DCD
Comment obtenez-vous cette sortie de performance? Vous n'avez pas de journalisation des performances dans l'exemple de code que vous avez fourni. Je soupçonne que le problème est ailleurs. Avez-vous plus de code que vous ne nous montrez pas qui pourrait être pertinent? –