std::to_string faster than light

RU / День 1 / 10:45 / Зал 4

Доклад — рассказ про историю одного PR в libc++ LLVM.

Одна скромная попытка ускорить std::to_string для целых в стандартной библиотеке выросла в целое исследование с разбором требований и реализаций различных способов форматирования чисел в С++.

Разберём начальную реализацию std::to_string, какими способами можно её улучшить.

Рассмотрим три последовательных итерации по ускорению std::to_string: оптимизация аллокаций, переход от sprintf к наивному алгоритму делениями и std::to_chars.

Запрофилируем каждый из вариантов, объясним результаты и посмотрим, какие трюки используются для быстрого форматирования чисел.

Комментарий программного комитета

И снова строки, а точнее, алгоритм std::to_string. Иван расскажет целую историю о том, как он улучшал реализацию этого алгоритма со стандартной библиотекой, и покажет насколько глубока кроличья нора алгоритмов преобразования числе в строку.

Скачать презентацию