TGViewer
LEFT JOIN LEFT JOIN @leftjoin · 41.9K subscribers
Post #1813 8.49K
А вы знаете, что произошло в начале 2024?
Конечно, на этот вопрос можно дать несколько разных ответов, но нас интересует одно из самых крупных изменений в Polars — изменение структуры данных для строк.

Почему вспоминаем про это сейчас?
Потому что это все еще интересно — статья рассказывает про тонкости работы Polars, про которые кто-то может и не задумывался.

В чем суть?
Изначально Polars следовали спецификации Apache Arrow, но решили отойти от этого формата, чтобы улучшить производительность.

В Apache Arrow данные строкового типа «проходят» через три буфера: буфер валидности, общий буфер data и дополнительный буфер с оффсетами для определения начала и окончания каждой строки. Такой формат обеспечивал компактность, но у него были и недостатки:
🔵Сложно заранее определить, сколько памяти надо выделить под строки,
🔵Операции gather и filter начинали тормозить при работе с длинными строками.

Это и подтолкнуло к переходу на формат, который используется в Hyper/Umbra. Здесь строки хранятся в «представлениях» — колонках фиксированной ширины по 16 байт. Короткие строки до 12 байт встраиваются напрямую, длинные — в отдельный буфер. В оригинале статьи есть наглядные схемы, как это работает.

Новый подход обеспечивал быстрый доступ к коротким строкам, поддержку интернирования для длинных, стабильное время выполнения операций filter и gather и вообще в целом оказался удобнее. Минусы у него тоже были — например, пришлось пожертвовать компактностью в пользу скорости обработки данных.

🔜 Но все было не зря — судя по бенчмаркам в конце статьи, переход на новый формат дал значительный прирост производительности, особенно при работе с «тяжелыми» строками.
  • 👍 4
  • ❤ 1
  • ⚡ 1
  • 🔥 1
  • 😍 1
More from @leftjoin
  1. Sep 28, 2026В одной ячейке Excel можно будет хранить массивы значений Наконец-то важные новости и не п…
  2. Sep 25, 2026Новый ИИ-бенчмарк подвезли Тем, как ИИ пишет код, взламывает сайты или решает математическ…
  3. Sep 23, 2026Как грамотно делегировать задачи ИИ Внедрение искусственного интеллекта и агентов в работу…
  4. Sep 18, 2026Что делать с тепловыми картами и хороплетами? Все виды графиков и чартов по-своему хороши…
  5. Sep 16, 20263D-карты СУБД Отвлечемся от новостей про ИИ и скандалов вокруг OpenAI и посмотрим, что вну…
  6. Sep 14, 2026Решение математических проблем это не просто бенчмарк На прошлой неделе разгорелся серьезн…
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 →