«👋».length === 2 — это знают все. Дальше все пишут честную функцию, которая ходит по строке по символам, а не по кодовым единицам UTF-16. И почти всегда она получается квадратичной: и длина, и обращение по индексу проходят строку с начала, поэтому обычный цикл по ним — это n²/2 шагов без единого…
Тест проходил за миллисекунды. На настоящем файле тот же код думал минуту
Это краткое изложение. Полный текст материала доступен на сайте источника.