Bir zamanlayıcılığa karşı koyduğumda, giderek yavaşlayan bir komut dosyası var. Her şey yaptığı gibi bir satır okur, kontrol eder, daha sonra veritabanına ekler ve bir sonraki satıra kadar ilerler gibi oldukça basittir.PHP betiği aşamalı olarak yavaşlıyor (dosya okuyucu)
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
dosya maalesef her şey artış hızında okunur zaman etrafında ~ 20 gb yüzden muhtemelen ölmüş olacağım geçerli:
Burada yavaş yavaş kötüye gidiyor bunun çıkışı var. Kod aşağıda (esas olarak), ancak fgets() ile ilgili bir şey olduğundan şüpheleniyorum, ama ne olduğundan emin değilim.
$handle = fopen ($import_file, 'r');
while ($line = fgets ($handle))
{
$data = json_decode ($line);
save_record ($data, $line);
}
Şimdiden teşekkürler!
DÜZENLEME:
üzerinden yorumda 'save_record ($ veri $ hattı); hiçbir şey yapmıyor gibi görünüyor.
Kaydetme için kod kaydedebilir misiniz? Muhtemelen anahtar olan – Jhong
Aslında save_record() satırına yorum yaparsam, yine de kötü. – DCD
Bu performans çıktısını nasıl alıyorsunuz? Sağladığınız kod örneğinde performans kayıt olmuyor. Problemin başka yerlerde olduğundan şüpheleniyorum. Bizi ilgilendirmeyeceğiniz bazı kodlarınız var mı? –