Antes tarde do que nunca.
Se bem entendi, Earley está de cima para baixo e gastará tempo e memória criando itens de Earley para cada produção em um determinado S (i). Isso significa que, para a linguagem natural, em S (0), criamos e verificamos um item de Earley para todas as palavras possíveis que iniciam uma frase, e existem muitas delas.
Mas a GLR é de baixo para cima, portanto, assumindo consultas de tabela / estado com hash eficientes, o primeiro token seleciona a (s) próxima (s) transição (ões) em tempo constante.
Isso é verdade especificamente para idiomas naturais, com o grande número de produções distintas. Mas não é realmente significativo para linguagens de programação, com o conjunto muito pequeno de produções.