Век живи, век считай

Jun 06, 2015 02:24

Почувствовал себя сегодня программистом-новичком. Оказывается, что при некоторых повсеместно распространенных условиях строки несут в себе все худшее и от массива и списка: не умеют быструю вставку/удаление и, внезапно, они не умеют быструю индексацию. У меня это проявилось в том, что отредактировать сотню подряд идущих букв в строке на полтора гигабайта занимает почти секунду.
А всё потому что UTF-8 имеет переменную длину символа, а значит нельзя легко узнать, на сколько байт надо сдвинуться, чтобы достать 100500 символ, т.е. приходится используя линейный поиск перебрать первые 100499 символов. Изменение кодировки на кодировку с постоянной шириной символа меняет скорость работы раз эдак в тысячу.
Previous post Next post
Up