Codeigniter Tamanho de memória permitido esgotado durante o processamento de arquivos grandes

Estou postando isso no caso de alguém procurar a mesma solução, já que perdi dois dias nessa besteira.

Eu tenho um trabalho cron que atualiza o banco de dados usando um arquivo muito grande uma vez por dia, usando o seguinte código:

if (($handle = fopen(dirname(__FILE__) . '/uncompressed', "r")) !== FALSE) 
{
    while (($data = fgets($handle)) !== FALSE) 
    {
        $thisline = json_decode($data, true);
        $this->regen($thisline);
    }
    fclose($handle);
}

Isso está em um controlador Codeigniter que é usado apenas para tarefas cron. A função $ this-> regen executa várias verificações diferentes e armazena as informações corretas da linha no banco de dados. O arquivo em si tem mais de 300 MB de JSONs separados por novas linhas.

O problema: processaria apenas cerca de 20.000 linhas antes que a coisa toda ficasse sem memória.

questionAnswers(1)

yourAnswerToTheQuestion