В тексте вопроса такая же вермишель, как и в тегах.
Что такое "обработать большой объём строк"? Как обработать? При чём тут рекурсия вообще может быть? Что для вас "много ресурсов"?
Если говорить про php, то вам нужно на каждую строку лога натравить регулярку и полученные данные собрать в простую структуру. Это можно сделать относительно эффективно.
Вадим, а в чём там будет оптимальность, которая может зависеть от объёма? Мы же один раз в map передаём функцию, дальше с ней и работает движок. По идее, разницы не должно быть между анонимной и неанонимной функцией здесь. Или я не прав?