Я как-то бенчмаркал выполнение пустых циклов на perl. Даже они не очень быстрые :) За то же время код на Си сделал бы много полезного.
если тебе чисто потеоретизировать про оптимизации, то, семейными делами занимался, подумал:
1. два процесса, один читает первую строку, второй вторую — во временные буфера, типа по 32-64-128 символов, зависит от строения кеша.
2. прочитанные куски сравнивает первый процесс, второй ждёт команды продолжить дальше. если нашли расхождение, то второй процесс прибить.
тут тебе и многопоточность и оптимизации и прочее... но это чисто мой дилетантский взгляд.