У меня есть сценарий, который при установке против таймера становится все медленнее.Это довольно просто, поскольку все, что он делает - читает строку, проверяет, затем добавляет ее в базу данных и затем переходит к следующей строке.
Вот результат, который постепенно ухудшается:
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
Файл, к сожалению, составляет около ~ 20 Гб, поэтому я, вероятно, умру к тому времени, когда все это будет прочитано со скоростью увеличения.Код (в основном) ниже, но я подозреваю, что это как-то связано с fgets (), но я не уверен, что.
$handle = fopen ($import_file, 'r');
while ($line = fgets ($handle))
{
$data = json_decode ($line);
save_record ($data, $line);
}
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Закомментирование 'save_record ($ data, $ line);'кажется, ничего не делает.