TGViewer
Типичный программист Типичный программист @tproger · 78K subscribers
Post #14930 4.26K
Сортировку ускорили в 26 раз. Общий алгоритм просто знал слишком мало

У Axiom разные колонки сортировались одинаково: сравнивали значения по два, каждый раз превращая их во внутренний общий тип. Удобно. Только колонка с уровнями логов уже знала, что разных значений в ней не больше пятнадцати. А сортировка этой подсказкой не пользовалась.

Команда дала каждому типу колонки свою реализацию. Для enum сначала упорядочили небольшой словарь, затем разложили строки по счётчикам. Для строк начали сортировать ранги словаря, не сравнивая один и тот же текст снова и снова.

На блоках примерно по 65 тысяч строк, на Apple M4, ускорение разных типов составило 2–26 раз. Максимум достался enum. Это не обещание ускорить любую сортировку: выигрыш появился там, где данные уже имели полезную структуру. Её не пришлось придумывать, достаточно было перестать терять при каждом сравнении.
  • 👏 2
  • 🫡 2
  • 🎄 2
  • ❤ 1
  • 🎉 1
  • 🐳 1
More from @tproger
  1. Oct 14, 2026Python обработал 7,6 ГБ JSON за 0,12 секунды Здесь интересно, куда уходило время. Дэниел Л…
  2. Oct 14, 2026Завтра иду на GoCloud Tech 2026 Кому интересно узнать какие-нибудь подробности с мероприят…
  3. Oct 14, 2026Post #14929
  4. Oct 14, 2026Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-ск…
  5. Oct 14, 2026Пять лет новых функций. Сколько памяти теперь ест libcurl? Обычно от такого сравнения ждёш…
  6. Oct 13, 2026Post #14925
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →